Автомат обрабатывает натуральное число по следующему алгоритму:
- Строится двоичная запись числа
.
- Складываются все цифры полученной двоичной записи. В конец записи (справа) дописывается остаток от деления суммы на
.
- Предыдущий пункт повторяется для записи с добавленной цифрой.
- Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число . Алгоритм работает следующим образом:
- Двоичная запись числа
.
- Сумма цифр двоичной записи
, остаток от деления на
равен
, новая запись
.
- Сумма цифр полученной записи
, остаток от деления на
равен
, новая запись
.
- На экран выводится число
.
Какое наименьшее число, большее , может появиться на экране в результате работы автомата??
for i in range(1000000):
s = bin(i)[2:]
s += str(s.count(’1’) % 2)
s += str(s.count(’1’) % 2)
if int(s, 2) > 1024:
print(int(s, 2))
break
Ответ: 1026