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

Просмотры: 20
Изменено: 6 апреля 2025

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

  1. Строится двоичная запись числа N.
  2. К этой записи дописывается (дублируется) последняя цифра.
  3. Затем справа дописывается бит чётности: 0, если в двоичном коде полученного числа чётное число единиц, и 1, если нечётное.
  4. К полученному результату дописывается ещё один бит чётности.

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

Решение:

Python


def R(N):
    bn = f'{N:b}'
    bn += bn[-1]
    bn += str(bn.count('1') % 2)
    bn += str(bn.count('1') % 2)
    return int(bn, 2)

for N in range(1, 200):
    if R(N) > 97:
        print(N)
        break

Ответ: 13