Автомат обрабатывает натуральное число N > 1 по следующему алгоритму.
1. Строится двоичная запись числа N.
2. Последняя цифра двоичной записи удаляется.
3. Если исходное число N было нечётным, в конец записи (справа) дописываются цифры 10, если четным — 01.
4. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 1101.
2. Удаляется последняя цифра, новая запись: 110.
3. Исходное число нечётно, дописываются цифры 10, новая запись: 11010.
4. На экран выводится число 26.
Какое число нужно ввести в автомат, чтобы в результате
Переведём число 201710 в двоичную систему счисления: 111 1110 00012. Удалим последние
Ответ: 1008.
Приведем другое решение.
Заметим, что если исходное число было нечетным, то оно оканчивалось
В результате работы автомата получилось 201710 = 111 1110 00012. Удалим последнюю цифру и получим исходное число 11 1111 00002 = 100810.
Приведём другое решение на языке Python.
for n in range(1, 10000):
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
s = s[:-1]
if n % 2 != 0:
s += "10"
else:
s += "01"
r = int(s, 2) # перевод в десятичную систему
if r == 2017:
print(n)

