На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописываются справа ещё два разряда по следующему правилу: если N чётное, в конец числа (справа) дописываются два нуля, в противном случае справа дописываются две единицы. Например, двоичная запись 1001 числа 9 будет преобразована в 100111.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа — результата работы данного алгоритма.
Укажите минимальное число N, для которого результат работы алгоритма будет
Заметим, что если число чётное, то в конец его двоичной записи добавляются цифры 00, а если нечётное — цифры 11.
Рассмотрим числа,
13510 = 1000 01112 — может являться результатом работы алгоритма.
Выполним обратное преобразование числа 135 согласно алгоритму. Получим ответ — 33.
Ответ: 33.
Приведём другое решение на языке Python.
for n in range(1, 100):
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
if n % 2 == 0:
s += '00'
else:
s += '11'
r = int(s, 2) # перевод в десятичную систему
if r > 134:
print(n)
break

