*(М. Шагитов, П. Хаматов) У исполнителя Калькулятор имеются две команды, которые обозначены латинскими буквами:
Первая команда увеличивает число на \(1,\) вторая – заменяет число на сумму всех его натуральных делителей (включая \(1\) и само число). Сколько существует программ, для которых при исходном числе \(2\) результатом является число \(24?\)
Решение:
Python
def sum_div(n):
div = set()
for i in range(1, int(n**0.5) + 1):
if n % i == 0:
div.add(i)
div.add(n//i)
return sum(div)
def f(n, targ):
if n >= targ:
return n == targ
return f(n + 1, targ) + f(sum_div(n), targ)
print(f(2, 24))
Ответ: \(1912\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене