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

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

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

  1. Строится двоичная запись числа \(N.\)
  2. Все кроме первой значащие цифры инвертируются (\(0\) заменяется на \(1,\) а \(1\) на \(0).\)
  3. Полученное число переводится в десятичную запись.
  4. Новое число складывается с исходным, полученная сумма выводится на экран.

Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом.

  1. Двоичная запись числа \(N:\) \(13 = 1101_2\)
  2. Все кроме первой значащие цифры инвертируются: \(1010_2.\)
  3. Десятичное значение полученного числа \(10.\)
  4. На экран выводится число \(13 + 10 = 23.\)

Укажите такое наибольшее число \(N,\) для которого результат работы алгоритма не превышает \(123?\)

Решение:

Python


def R(N):
    bn = f'{N:b}'[1:]
    bn = '1' + bn.replace('0', 'x').replace('1', '0').replace('x','1')
    return int(bn, 2) + N

#print(R(10))
print(max(N for N in range(1, 1000) if R(N) < 123))

Ответ: \(63\)