Задание 5. Информатика. ЕГЭ 2024. Крылов-8

Просмотры: 12
Изменено: 19 сентября 2024

На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.

  1. Строиться двоичная запись числа \(N\).
  2. Далее эта запись обрабатывается по следующему правилу:
    1. если количество значащих цифр в двоичной записи числа чётное, то к этой записи в середину дописывается \(1\);
    2. если количество значащих цифр в двоичной записи нечётное, то запись не изменяется.

Полученная таким образом запись является двоичной записью искомого числа \(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\)