Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение
Если в строке нет вхождений
Б) нашлось (v).
Эта команда проверяет, встречается ли
Дана программа для Редактора:
НАЧАЛО
ПОКА НЕ нашлось (00)
заменить (033, 21120)
заменить (034, 22120)
заменить (04, 220)
заменить (030, 100)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что в исходной
Приведём аналитическое решение.
Проверим как меняется после преобразование сумма чисел и их количество:
033 -> 21120 сумма чисел 6 -> 6 количество чисел (без учета 0) 2 -> 4
034 -> 22120 сумма чисел 7 -> 7 количество чисел (без учета 0) 2 -> 4
04 -> 220 сумма чисел 4 -> 4 количество чисел (без учета 0) 1 -> 2
030 -> 100 строка, после которой цикл завершиться.
Можно заметить, что в изначальной строке точно была
Код на языке Python.
def Div(n):
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
for i in range(31,0,-1):
summa = (31-i)*3 + i*4 + 1
if Div(summa):
print(i)
break
В результате работы программы получаем ответ — 19.
Ответ: 19.

