Автомат обрабатывает натуральное число N по следующему алгоритму.
1. Строится двоичная запись числа N.
2. В конец записи (справа) добавляется (дублируется) последняя цифра.
3. Складываются все цифры полученной двоичной записи. В конец записи (справа) дописывается остаток от деления суммы
4. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом:
1. Двоичная запись числа N: 1101.
2. Дублируется последняя цифра, новая запись: 11011.
3. Сумма цифр полученной записи — 4, остаток от деления
4. На экран выводится число 54.
Какое наименьшее число,
Рассмотрим числа,
106 = 11010102 — не является результатом работы алгоритма.
107 = 11010112 — не является результатом работы алгоритма.
108 = 11011002 — не является результатом работы алгоритма.
109 = 11011012 — не является результатом работы алгоритма.
110 = 11011102 — не является результатом работы алгоритма.
111 = 11011112 — является результатом работы алгоритма для числа 110112.
Ответ: 111.
Приведём другое решение на языке Python.
for n in range(1, 100):
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
s += s[-1]
summa = 0
for i in range(len(s)):
summa += int(s[i])
s += str(summa % 2)
r = int(s, 2) # перевод в десятичную систему
if r > 105:
print(r)
break
Приведём другое решение на языке Python.
for n in range(1, 100):
s = bin(n)[2:]
s += s[-1]
s += str(s.count('1') % 2)
r = int(s, 2)
if r > 105:
print(r)
break

