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