Алгоритм вычисления функции \(F(a, \, b),\) где \(a\) и \(b\) – неотрицательные числа, задан следующими соотношениями:
Определите количество таких чисел \(n,\) принадлежащих отрезку \(100~000~000 \leqslant n \leqslant 200~000~000,\) для которых \(F(n, \, 15) = 1.\)
Решение:
Функция \(F(a, \, b)\) представляет собой функцию вычисления НОД по алгоритму Евклида. Значит, вопрос задания можно переформулировать так: найти все числа на отрезке \(100~000~000 \leqslant n \leqslant 200~000~000,\) которые взаимно просты с \(15,\) т.е. не делятся ни на \(3,\) ни на \(5.\) Это легко можно сделать, используя формулу включения-исключения:
Python
d3 = (200_000_000 - 100_000_002) // 3 + 1
d5 = (200_000_000 - 100_000_000) // 5 + 1
d15 = (200_000_000 - 100_000_005) // 15 + 1
print(100_000_001 - d3 - d5 + d15)
Ответ: \(53333334\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене