Задание 5. Информатика. ЕГЭ. Поляков-1771
- Просмотры: 15
- Изменено: 6 апреля 2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N.\)
- К этой записи дописывается (дублируется) последняя цифра.
- Затем справа дописывается бит чётности: \(0,\) если в двоичном коде полученного числа чётное число единиц, и \(1,\) если нечётное.
- К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое минимальное число \(R,\) большее \(144,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 200) if R(N) > 144))
Ответ: \(156\)