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

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

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

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

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

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

  1. Двоичная запись числа \(N:\) \(1101.\)

  2. Число нечетное, следовательно, слева дописываем две единицы – \(11 + 1101 = 111101.\)
  3. На экран выводится число \(111101_2 = 61.\)

В результате работы автомата на экране появилось число, не меньшее \(412.\) Для какого наименьшего значения \(N\) данная ситуация возможна?

Решение:

Python


def R(N):
    bn = f'{N:b}'
    if bn.count('1') % 2 == 0:
        bn = '1' + bn + '00'
    else:
        bn = '11' + bn
    return int(bn, 2)

for N in range(13, 300):
    if R(N) >= 412:
        print(N)
        break

Ответ: \(39\)