Задание 5. Информатика. ЕГЭ. Поляков-6988
- Просмотры: 56
- Изменено: 17 февраля 2025
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N.\)
- Все разряды полученного числа инвертируются.
- К полученному результату справа дописывается бит четности.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\)
Например, для числа \(60\) алгоритм будет выполняться следующим образом:
- \(N = 60 = 111100_2.\)
- \(000011_2.\)
- \(0000110_2 = 6_{10}.\)
Укажите максимальное число \(R,\) меньшее \(170,\) которое может быть получено в результате работы этого алгоритма. В ответе запишите это число в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn.replace('0', '2').replace('1', '0').replace('2', '1')
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(max(R(x) for x in range(1, 1000) if R(x) < 170))
Ответ: \(169\)