Задание 5. Информатика. ЕГЭ. Шастин. 6.11.2024

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

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

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

Полученна ятаким образом запись является двоичной записью искомого числа \(R\). Например, дл яисходного числа \(6_{10} = 110_2\) результатом является число \(1000_2 = 8_{10}\), а для исходного числа \(4_{10} = 100_2\) результатом является число \(1101_2 = 13_{10}\). Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), большее \(171\). В ответе запишите это число в десятичной системе счисления.

Решение:

Python


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

#print(R(6), R(4))
for N in range(7, 200):
    if R(N) > 171:
        print(N)
        break

Ответ: \(64\)