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

Просмотры: 56
Изменено: 16 февраля 2025

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

  1. Строится двоичная запись числа \(N.\)
  2. Складываются все цифры полученной двоичной записи. Если сумма получилась нечетной, справа к двоичной записи дописываются две единицы, иначе две единицы дописываются слева.

Полученная таким образом запись является двоичной записью искомого числа \(R.\)

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

  1. Двоичная запись числа \(N:\) \(13 = 1101_2.\)
  2. Сумма цифр двоичной записи \(3,\) число нечетное. Значит получается число \(110111_2.\)
  3. \(110111_2 = 55_{10}\)

Найдите наименьшее число \(N,\) для которого результат работы автомата больше, чем \(102.\)

Решение:

Python


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

for N in range(1, 1000):
    if R(N) > 102:
        print(N)
        break

Ответ: \(17\)