(П. Волгин) Алгоритм вычисления значения функции \(F(n),\) где \(n\) – целое неотрицательное число, задан следующими соотношениями:
Сколько существует значений \(n\) на отрезке \([1,~35],\) для которых сумма цифр значения функции \(F(n)\) является простым числом?
Решение:
Python
def is_prime(n):
if n <= 2:
return n == 2
if n & 1 == 0:
return False
for i in range(3, int(n ** 0.5) + 1, 2):
if n % i == 0:
return False
return True
F = {0: 1, 1: 1}
for n in range(2, 36):
F[n] = 2 * F[n - 1] + F[n - 2] if n % 3 == 0 \
else 3 * F[n - 2] + F[n - 1]
ans = 0
for i in range(1, 36):
ans += is_prime(sum(int(z) for z in str(F[i])))
print(ans)
Ответ: \(1\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене