(И. Митин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Например, для исходного числа \(13\) двоичные коды цифр: \(1 = 0001_2,\) \(3 = 0011_2.\) С добавленными битами чётности: \(00011\) и \(00110,\) результат шага \(1:\) \(0001100110.\) Заменяем два левых разряда на \(1\) и добавляем справа \(0:\) \(1011001100_2 = 716.\)
Укажите минимальное \(N,\) после обработки которого с помощью этого алгоритма получится \(674890.\)
Решение:
Python
def R(N):
ns = [f'{int(x):04b}' for x in str(N)]
ans = ''.join(s + str(s.count('1') & 1) for s in ns)
return int('1' + ans[2:] + '0', 2)
#print(R(13))
for N in range(14, 10_000):
if R(N) == 674890:
print(N)
break
Ответ: \(5482\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене