У исполнителя Калькулятор есть три команды, которым присвоены номера:
1. Прибавить
2. Прибавить
3. Умножить на
Найдите длину самой короткой программы, в результате выполнения которой при исходном числе результатом является число
.
a = [0] * 300
a[0] = 10**20
a[1] = 0
for i in range(2, 300):
x, y, z = 10**10, 10**10, 10**10
x = a[i - 1] + 1
if i >= 5:
y = a[i - 5] + 1
if i % 3 == 0:
z = a[i // 3] + 1
a[i] = min(x, y, z)
print(a[227])
Ответ: 7