На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу: если
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа — результата работы данного алгоритма.
Укажите минимальное число N, для которого результат работы алгоритма будет
Переведем число 11510 в двоичную систему: 11510 = 11100 112. На выходе должно быть число большее, чем 11510. Уберём из числа 11100 112 два правых разряда. Получим число 111002 = 28. Это число не подходит, поскольку, если следовать алгоритму, получится число Возьмём число 2910 = 111012. Следуя алгоритму, проверим это число на чётность. Число 29 является нечётным, следовательно, добавим к двоичной записи числа 29 две единицы справа. Получим 11101112 = 11910.
Таким образом, минимальное число N, для которого результат работы алгоритма будет
Ответ: 29.
Приведём другое решение на языке Python.
for n in range(1, 100):
s = bin(n)[2:] # перевод в двоичную систему
if n % 2 == 0:
s += "00"
else:
s += "11"
r = int(s, 2) # перевод в десятичную систему
if r > 115:
print(n)
break

