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

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

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

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

Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8_{10}\), а для исходного числа \(3 = 11_2\) это число \(111_2 = 7_{10}\).

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

Решение:

Python


def R(N):
    b = bin(N)[2:]
    b += b[-1]
    temp = list(b)

    temp[1] = '1' if b.count('1') % 3 == 0 else '0'

    return int(''.join(temp), 2)

N = 7
while R(N) < 26:
    N += 1

print(N)

Ответ: \(9\)