(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Например, для числа \(13 = 1101_2\) получается \(1101101_2 = 109,\) для числа \(9\) двоичная запись \(1001_2\) преобразуется в \(1001010_2 = 74.\) Укажите значение \(N,\) в результате обработки которого будет получено минимально возможное четное значение \(R,\) большее \(300.\) Если таких значений несколько, приведите минимальное подходящее значение.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '010' if N % 3 == 0 else f'{N % 3 * 5:b}'
return int(bn, 2)
Nmin = 0
Rmin = float('inf')
for N in range(1, 300):
r = R(N)
if r > 300 and r % 2 == 0 and r < Rmin:
Rmin = r
Nmin = N
print(Nmin)
Ответ: \(39\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене