У исполнителя Вычислитель две команды, которым присвоены номера:
1. вычти 1
2. возведи в квадрат
Первая из них уменьшает число на экране на 1 , вторая возводит его во вторую степень.
Исполнитель работает только с натуральными числами.
Составьте алгоритм получения из числа 3 числа 62, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 12112 — это алгоритм:
вычти 1
возведи в квадрат
вычти 1
вычти 1
возведи в квадрат,
который преобразует число 4 в 49.)
Если таких алгоритмов более одного, то запишите любой из них.
Последовательно пойдем от числа 3 к числу 62:
32 = 9 (команда 2);
9 − 1 = 8 (команда 1);
82 = 64 (команда 2);
64 − 1 = 63 (команда 1);
63 − 1 = 62 (команда 1).
Ответ: 21211.
Приведем другое решение на языке Python.
def f(flag, x):
if flag == 1:
return x - 1
if flag == 2:
return x**2
x = 3
for flag in range(1, 3):
for flag1 in range(1, 3):
for flag2 in range(1, 3):
for flag3 in range(1, 3):
for flag4 in range(1, 3):
if f(flag, f(flag1, f(flag2, f(flag3, f(flag4, x))))) == 62:
print(flag4, flag3, flag2, flag1, flag)



