У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. зачеркни справа
Первая из них возводит число на экране во вторую степень, вторая — удаляет крайнюю правую цифру числа.
Составьте алгоритм получения из числа 3 числа 6, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 21211 — это алгоритм
зачеркни справа
возведи в квадрат
зачеркни справа
возведи в квадрат
возведи в квадрат,
который преобразует число 52 в 16.)
Если таких алгоритмов более одного, то запишите любой из них.
Последовательно пойдем от числа 3 к числу 6:
32 = 9 (команда 1);
92 = 81 (команда 1);
зачеркиваем правую цифру числа 81 и получаем 8 (команда 2);
82 = 64 (команда 1);
зачеркиваем правую цифру числа 64 и получаем 6 (команда 2).
Ответ: 11212.
Приведем другое решение на языке Python.
def f(flag, x):
if flag == 1:
return x**2
if flag == 2:
return int(str(x)[:-1])
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))))) == 6:
print(flag4, flag3, flag2, flag1, flag)



