(Е. Джобс) На вход алгоритма подается натуральное число \(N > 1.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(4 = 100_2\) результатом будет являться число \(8 = 1000_2,\) а для исходного числа \(6 = 110_2\) результатом будет являться число \(12 = 1100_2.\)
Укажите максимальное число \(R,\) меньшее \(450,\) которое может являться результатом работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'[1:]
if bn.count('1') % 2 == 0:
bn = '10' + bn
else:
bn = '1' + bn + '0'
return int(bn, 2)
print(max(R(N) for N in range(2, 450) if R(N) < 450))
Ответ: \(444\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене