Исполнитель Сова преобразует число на экране.
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 2
2. Умножить на 3
3. Сделать нечетное (умножить на два и вычесть 1)
Первая команда увеличивает число на экране на 2, вторая увеличивает его в 3 раза, третья увеличивает в два раза и уменьшает на один. Программа для исполнителя Сова — это последовательность команд.
Сколько существует программ, для которых при исходном числе 5 результатом является число 37, и при этом траектория вычислений содержит число 17 и не содержит число 21? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 1 траектория будет состоять из чисел 3, 5, 15.
def f(a,b):
if a > b or a == 21:return 0
if a == b:return 1
if a < b:return f(a+2,b) + f(a*3,b) + f(a*2-1,b)
print(f(5,17)*f(17,37))