Исполнитель КВАДРАТОР имеет две команды, которым присвоены номера:
1. умножь на
2. прибавь
Выполняя команду номер , КВАДРАТОР умножает число на экране на
, а выполняя команду номер
, прибавляет к этому числу
. Напишите программу, содержащую не более
команд, которая из числа
, не проходя через числа
и
, получает число
. Укажите лишь номера команд.
for i in range(16): # При >= 16 уже 5 знаков
s = ’0’ * (4 — len(bin(i)[2::])) + bin(i)[2::] # Добавление незначащих
# нулей
flag = True # Проверка на попадание на 7 или 8
summa = 3
for j in s:
if j == ’0’:
summa *= 2
if j == ’1’:
summa += 2
if summa in [7, 8]:
flag = False
if flag and summa == 40:
print(s)
s = ’0’ * (4 — len(bin(i)[2::])) + bin(i)[2::] # Добавление незначащих
# нулей
flag = True # Проверка на попадание на 7 или 8
summa = 3
for j in s:
if j == ’0’:
summa *= 2
if j == ’1’:
summa += 2
if summa in [7, 8]:
flag = False
if flag and summa == 40:
print(s)
Ответ: 2111