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

Просмотры: 83
Изменено: 22 ноября 2024

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

  1. Из числа \(N\) вычитается остаток от деления \(N\) на \(4\).
  2. Строиться двоичная запись полученного результата.
  3. К этой записи дописываются справа ещё два разряда по следующему правилу:
    1. складываются все цифры построенной двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
    2. над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).

Полученная таким образом запись является двоичной записью искомого числа \(R\).

Укажите такое наибольшее число \(N\), для которого результат работы данного алгоритма меньше числа \(64\). В ответе запишите это число в десятичной системе счисления.

Решение:

Python


def R(N):
    t = N - N % 4
    bt = bin(t)[2:]
    bt = bt + str(bt.count('1') % 2)
    bt = bt + str(bt.count('1') % 2)

    return int(bt, base=2)


a = [N for N in range(1, 64) if R(N) < 64]

print(max(a))

Ответ: \(15\)