Задание 5. Информатика. ЕГЭ. Поляков-6993
- Просмотры: 56
- Изменено: 16 февраля 2025
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N.\)
- Складываются все цифры полученной двоичной записи. Если сумма получилась нечетной, справа к двоичной записи дописываются две единицы, иначе две единицы дописываются слева.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
- Двоичная запись числа \(N:\) \(13 = 1101_2.\)
- Сумма цифр двоичной записи \(3,\) число нечетное. Значит получается число \(110111_2.\)
- \(110111_2 = 55_{10}\)
Найдите наименьшее число \(N,\) для которого результат работы автомата больше, чем \(102.\)
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2:
bn = bn + '11'
else:
bn = '11' + bn
return int(bn, 2)
for N in range(1, 1000):
if R(N) > 102:
print(N)
break
Ответ: \(17\)