Задание 5. Информатика. ЕГЭ. Поляков-6704
- Просмотры: 73
- Изменено: 3 марта 2025
(А. Рогов) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится двоичная запись числа \(N.\)
- Если число \(N\) не делится на \(2,\) все цифры двоичной записи инвертируются (\(0\) заменяется на \(1\) и наоборот).
- Все цифры полученной двоичной записи дублируются.
- Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(6\) двоичная запись \(110_2\) преобразуется в запись \(111100_2 = 60,\) для числа \(5\) двоичная запись \(101_2\) преобразуется в \(1100_2 = 12.\) Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее чем \(60.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2:
bn = bn.replace('0', '2').replace('1', '0').replace('2', '1')
bn = ''.join(ch*2 for ch in bn)
return int(bn, 2)
for N in range(1, 100):
if R(N) > 60:
print(N)
break
Ответ: \(8\)