На вход алгоритма подаётся натуральное число . Алгоритм строит по нему новое число следующим образом.
-
Строится двоичная запись числа .
-
Далее эта запись обрабатывается по следующему правилу: a) если количество значащих цифр в двоичной записи числа чётное, то к этой записи в середину дописывается 1; б) если количество значащих цифр в двоичной записи числа нечётное, то запись не изменяется.
Полученная таким образом запись является двоичной записью искомого числа . Например, для исходного числа результатом является число , а для исходного числа , результатом является число .
Укажите минимальное число , после обработки которого с помощью этого алгоритма получается число , не меньшее, чем 26. В ответе запишите это число в десятичной системе счисления.
Решение:
Решение на Python:
for N in range(200):
N2 = bin(N)[2:]
sr = len(N2) // 2
if len(N2) % 2 == 0:
N2 = N2[:sr]+'1'+N2[sr:]
R = int(N2, 2)
if R >= 26:
print(N)
break
Ответ: 12