t = {46: 1}
for i in range(45, 1, -1):
t[i] = t.get(i + 2, 0) + t.get(i + 4, 0) + t.get(i * i, 0)
if i in [12, 32]: # удаление траекторий не проходящих через 32 и 12
for j in range(i + 1, 47): t[j] = 0
print(t[2])
def f(x,y):
if x<y :
return 0
if x ==y:
return 1
else:
return f(x-2, y)+f(x-4, y)+ f((x**0,5), y)
print(f(46,32)*f(32,12)*f(12,2))
Непоседливый Непоседа решил сыграть в игру. Он придумал исполнителя, преобразующего числа на доске и имеющего три команды:
1. Вычесть 2
2. Вычесть 4
3. Извлечь корень
Первые две команды уменьшают число на доске на 2 и 3 соответственно, третья команда — извлекает из числа квадратный корень, если число является квадратом любого числа. Программа для такого исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 46 в число 2 и содержат в траектории числа 32 и 12?