На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Полученная таким образом запись (в ней на два или три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Например, для исходного числа \(4 = 100_2\) результатом является число \(20 = 10100_2,\) а для исходного числа \(5 = 101_2\) это число \(53 = 110101_2.\) Укажите максимальное число \(R,\) не превышающее \(1234567,\) которое может быть результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn[-1] == '0':
bn = '10' + bn
else:
bn = '1' + bn + '01'
return int(bn, 2)
print(max(R(x) for x in range(100_000, 1_000_000) if R(x) <= 1234567))
Ответ: \(1048573\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене