Задание 5. Информатика. ЕГЭ 2024. Крылов-8
- Просмотры: 112
- Изменено: 25 ноября 2024
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
- Строиться двоичная запись числа \(N\).
- Далее эта запись обрабатывается по следующему правилу:
- если количество значащих цифр в двоичной записи числа чётное, то к этой записи в середину дописывается \(1\);
- если количество значащих цифр в двоичной записи нечётное, то запись не изменяется.
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Например, для исходного числа \(5 = 101_2\) результатом является число \(101_2 = 5_{10}\), а для исходного числа \(2_{10} = 10_2\) результатом является число \(110_2 = 6_{10}\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не меньшее, чем \(26\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if len(bn) % 2 == 0:
tmp = bn[:len(bn) // 2] + '1' + bn[len(bn) // 2:]
else:
tmp = bn
return int(tmp, base=2)
a = []
for N in range(2, 50):
if R(N) <= 26:
a.append(N)
print(a[-1])
Ответ: \(26\)