Задание 5. Информатика. ЕГЭ. Шастин. 13.03.2025
- Просмотры: 381
- Изменено: 14 марта 2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится троичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если число \(N\) делится на \(3,\) то в начало этой записи дописываются две последние троичные цифры;
- 6) если число \(N\) на \(3\) не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма переводится в троичную систему счисления и дописывается в начало числа.
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 102_3\) результатом является число \(10102_3 = 92_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(10110_3 = 93_{10}.\) Укажите минимальное нечётное число \(R,\) большее \(418,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 3 == 0:
tr = tr[-2:] + tr
else:
tr = conv(sum(int(x) for x in tr)) + tr
return int(tr, 3)
print(min(R(N) for N in range(10, 500) if R(N) % 2 and R(N) > 418))
Ответ: \(423\)