16.01 Одна функция
Ошибка.
Попробуйте повторить позже
Алгоритм вычисления значения функции , где
– целое неотрицательное число, задан следующими
соотношениями:
при
если
и
кратно 3
в остальных случаях
Сколько существует значений n на отрезке [1, 1500], для которых сумма цифр значения функции F(n) является простым числом?
Рекурсивное решение
В задаче задан рекурсивный алгоритм, при котором функция в процессе вычислений вызывает сама себя с
другими аргументами. Для реализации создаём пользовательскую функцию в Python с помощью . Внутри
функции используем условный оператор
, чтобы задать ветвление:
при
; если
и
, то
; иначе
. Перебираем все
,
для каждого вычисляем
, находим сумму его десятичных цифр
, проверяем, является ли
простым числом, и считаем количество таких
. Для ускорения вычислений удобно кэшировать значения
.
from functools import lru_cache # Кэширование результатов для оптимизации @lru_cache(None) def f(n): # База рекурсии if n <= 1: return 1 # При n > 1 и n кратно 3 elif n > 1 and n % 3 == 0: return f(n - 1) + f(n - 2) + n # Иначе else: return f(n - 2) + 2 # Функция для вычисления суммы цифр def summa(n): dig_sum = 0 while n > 0: dig_sum += (n % 10) n //= 10 return dig_sum # Проверка на простоту def is_prime(n): if n < 2: return False # Перебираем до корня for j in range(2, int(n ** 0.5) + 1): # Если хоть один делитель есть, то число простое if n % j == 0: return False return True ans = 0 for i in range(1, 1500 + 1): # Если сумма цифр простая if is_prime(summa(f(i))): # То обновляем счётчик ans += 1 print(ans)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!