Задание 5. Информатика. ЕГЭ. Поляков-3905
- Просмотры: 20
- Изменено: 14 апреля 2025
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
- Строится двоичная запись числа \(N.\)
- Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
- Шаг 2 повторяется ещё два раза.
- Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 90\) в результате работы алгоритма получится чётное число, которое не делится на \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(91, 1000) if R(N) % 2 == 0 and R(N) % 4 != 0))
Ответ: \(97\)