Задание 5. Информатика. ЕГЭ. Поляков-6705
- Просмотры: 36
- Изменено: 24 февраля 2025
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится двоичная запись числа \(N.\)
- Если число \(N\) делится на \(2,\) к двоичной записи справа дописывается \(0,\) иначе справа дописывается \(1.\)
- Если в двоичной записи числа \(N\) чётное число единиц, справа дописывается \(0,\) иначе дописывается \(1.\)
- Полученная таким образом запись является двоичной записью искомого числа \(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\)