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

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

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

  1. Строится двоичная запись числа \(N.\)
  2. Если число \(N\) делится на \(2,\) к двоичной записи справа дописывается \(0,\) иначе справа дописывается \(1.\)
  3. Если в двоичной записи числа \(N\) чётное число единиц, справа дописывается \(0,\) иначе дописывается \(1.\)
  4. Полученная таким образом запись является двоичной записью искомого числа \(R.\)

Например, для числа \(13\) двоичная запись \(1101_2\) преобразуется в запись \(110111_2 = 55,\) для числа \(10\) двоичная запись \(1010_2\) преобразуется в \(101000_2 = 40.\) Укажите минимальное значение \(R,\) большее чем \(2023,\) которое может быть результатом работы алгоритма.

Решение:

Python


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

print(min(R(x) for x in range(1, 2300) if R(x) > 2023))

Ответ: \(2025\)