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