Предмет: Информатика, автор: yabhbkirill

Задача 7: Соревнование делимости
Кате нравятся целые числа, которые делятся без остатка на число K, а Маше — целые числа, которые делятся без остатка на число M. Сегодня подруги решили утроить соревнование и выяснить, чьи любимые числа лучше.

Для начала они выписали на лист бумаги все целые числа от A до B включительно. Затем Катя посчитала, сколько чисел среди выписанных делятся на число K без остатка, а Маша посчитала, сколько чисел делятся на число M без остатка.

В соревновании победит та из них, чьих любимых чисел окажется больше. Если же количества любимых чисел Кати и Маши совпадут, объявляется ничья. Для того, чтобы определить победителя, девочки попросили вас вычислить разность количества любимых чисел Кати и Маши.

Входные данные
Программа получает на вход четыре целых положительных числа, записанных в отдельных строках: K, M, A и B. Числа не превосходят 2×109.

Выходные данные
Программа должна вывести одно целое число — разность количества любимых чисел Кати и количества любимых чисел Маши.

Система оценивания
Решение, правильно работающее только для случаев, когда входные числа не превосходят 100, будет оцениваться в 60 баллов.

Ответы

Автор ответа: DIMASIKTV
42

a=int(input())

b=int(input())

c=int(input())

d=int(input())

k=0

m=0

for i in range(d-c+1):

   if c%a==0: k+=1

   if c%b==0: m+=1

   c+=1

print(k-m)

Язык: Python 3


DIMASIKTV: Поставь ПЖ лучший ответ и лайк
Владислав19: неполное решение
Mrdenk: решение слишком медленное. Его асимптотика(10^9), значит она будет выполняться медленнее, чем секунда и будет TL. Данная задача решается за сложность O(1)
Автор ответа: Imkrutoy
8

Ответ:

k, m, a, b = int(input()), int(input()), int(input()), int(input())

total_k, total_m = 0, 0

for i in range(a, b+1):

   if i%k == 0:

       total_k += 1

   if i%m == 0:

       total_m+=1

print(total_k-total_m)

Объяснение: python

Похожие вопросы
Предмет: История, автор: kristinanaic