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

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

(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:

  1. К десятичной записи справа приписывается последняя цифра числа \(N.\)
  2. Получившееся число переводится в двоичное представление.
  3. К двоичной записи этого числа справа дописывается бит четности: единица, если количество единиц в двоичной записи нечетно, и ноль, если количество единиц четно.
  4. Полученное в результате этих операций число переводится в десятичную систему счисления.

Пример. Дано число \(13.\) Оно преобразуется следующим образом:$$13 \to 133 \to 10000101_2 \to 100001011_2 \to 267.$$ Укажите минимальное число \(N,\) после обработки которого получится число, превышающее \(413.\)

Решение:

Python


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

#print(R(13))
print(min(N for N in range(1, 1000) if R(N) > 413))

Ответ: \(21\)