Задание 5. Информатика. ЕГЭ. Поляков-6994
- Просмотры: 230
- Изменено: 1 февраля 2025
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N\) без ведущих нулей.
- Если в полученной записи единиц больше, чем нулей, то справа приписывается ноль. Иначе справа приписывается две единицы.
- Полученное число переводится в десятичную запись и выводится на экран.
Найдите наименьшее число \(N,\) после обработки которого автомат выдаст результат больший \(2019.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '0' if 2 * bn.count('1') > len(bn) else '11'
return(int(bn, 2))
for N in range(10, 2020):
if R(N) > 2019:
print(N)
break
Ответ: \(512\)