Задание 5. Информатика. ЕГЭ 2024. Крылов-5
- Просмотры: 73
- Изменено: 24 ноября 2024
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
- Строиться двоичная запись числа \(N\).
- Далее, если исходное число чётное, то справа к построенной двоичной записи числа \(N\) приписывается \(0\), если нечётное, то приписывается \(1\).
- Далее полученная на втором шаге алгоритма запись обрабатывается по следующему правилу:
- если количество единиц в двоичной записи кратно трём, то в этой записи два левых разряда заменяются на \(11\);
- если количество единиц в двоичной записи некратно трём, то в этой записи два левых разряда заменяются на \(10\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8_{10}\), а для исходного числа \(3 = 11_2\) это число \(111_2 = 7_{10}\).
Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не меньшее, чем \(26\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
b = bin(N)[2:]
b += b[-1]
temp = list(b)
temp[1] = '1' if b.count('1') % 3 == 0 else '0'
return int(''.join(temp), 2)
N = 7
while R(N) < 26:
N += 1
print(N)
Ответ: \(9\)