Задание 5. Информатика. ЕГЭ. Поляков-7458

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

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

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

Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8\), а для исходного числа \(4 = 100_2\) это число \(1101_2 = 13\).

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

В ответе запишите это число в десятичной системе счисления.

Решение:

Python


def R(N):
    bn = bin(N)[2:]
    if bn.count('1') % 2 == 0:
        tmp = '10' + bn[2:] + '0'
    else:
        tmp = '11' + bn[2:] + '1'

    return int(tmp, base=2)

#print(R(6), R(4))

a = []

for N in range(6, 1000):
    if R(N) < 35:
        a.append(N)

print(a[-1])

Ответ: \(24\)