Источник: https://kpolyakov.spb.ru/
Алгоритм вычисления функции задан следующими соотношениями:
Определите количество натуральных значений из отрезка
, для которых сумма цифр значения
равна 27.
# Инициализация списка f длиной 2000 элементов, заполненного нулями
f = [0] * 2000
c = 0 # Счетчик для подсчета значений, сумма цифр которых равна 27
# Заполнение списка f в обратном порядке от 1999 до 0
for n in range(1999, -1, -1):
if n > 30:
# Для n > 30 вычисляем значение по формуле
f[n] = n * n + 5 * n + 4
elif n % 2 == 0:
# Если n четное, вычисляем следующее значение функции
f[n] = f[n + 1] + 3 * f[n + 4]
else:
# Если n нечетное, вычисляем другое значение функции
f[n] = 2 * f[n + 2] + f[n + 5]
# Подсчет количества значений f[n] для n от 1 до 1000,
# сумма цифр которых равна 27
for n in range(1, 1001):
if sum(map(int, str(f[n]))) == 27:
c += 1 # Увеличиваем счетчик, если сумма цифр равна 27
print(c)
Ответ: 137