На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Например, для исходного числа \(8_{10} = 22_3\) результатом является число \(22110_3 = 228_{10},\) а для исходного числа \(9_{10} = 100_3\) это число \(10000_3 = 81_{10}.\)
Укажите минимальное нечётное число \(R,\) большее \(208,\) которое может быть получено с помощью описанного алгоритма.
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 3 == 0 else conv(3 * sum(int(x) for x in tr))
return int(tr, 3)
#print(R(8), R(9))
print(min(R(x) for x in range(9, 1000) if R(x) % 2 == 1 and R(x) > 208))
Ответ: \(243\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене