Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. В конец записи (справа) дописывается вторая справа цифра двоичной записи.
3. В конец записи (справа) дописывается вторая слева цифра двоичной записи.
4. Результат переводится в десятичную систему.
Пример. Дано число N = 13. Алгоритм работает следующим образом:
1. Двоичная запись числа N: 1101.
2. Вторая справа цифра 0, новая запись: 11010.
3. Вторая слева цифра 1, новая запись: 110101.
4. Результат работы алгоритма R = 53.
При каком наименьшем числе N в результате работы алгоритма получится R > 180? В ответе запишите это число в десятичной системе счисления.
Число на выходе должно превышать 18010 = 101101002, тогда исходное число N должно быть больше или равно 1011012 = 4510.
Рассмотрим числа N, большие или
на экране автомата будет
4510 = 1011012, результатом работы алгоритма будет число 101101002 = 18010, что не
4610 = 1011102, результатом работы алгоритма будет число 101110102 = 18610, что подходит под условие.
Таким образом, ответ — 46.
Ответ: 46.
Приведём другое решение на языке Python.
for n in range(2, 100): # начинаем с 2, так как число 1 имеет только одну цифру
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
s += s[-2]
s += s[1]
r = int(s, 2) # перевод в десятичную систему
if r > 180:
print(n)
break

