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

Просмотры: 73
Изменено: 24 ноября 2024

На вход алгоритма подаётся натуральное число \(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\)