Задание 5. Информатика. ЕГЭ. ЕГКР. 21.12.2024
- Просмотры: 2302
- Изменено: 2 февраля 2025
На вход алгоритма подаётся натуральное число \(M\). Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится троичная запись числа \(M.\)
- Далее эта запись обрабатывается по следующему правилу:
- если число \(N\) делится на \(3,\) то к этой записи дописываются две последние троичные цифры;
- если число \(N\) на \(3\) не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма переводитсяв троичную систему счисления и дописывается в конец числа.
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 102_3\) результатом является число \(10210_3 = 102_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(11010_3 = 111_{10}.\)
Укажите минимальное чётное число \(R,\) большее \(220,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
s = ''
while N:
s = str(N % 3) + s
N //= 3
return s
def R(N):
tr = conv(N)
if N % 3 == 0:
tr += tr[-2:]
else:
tr += conv(sum(int(x) for x in tr))
return int(tr, 3)
print(min(R(x) for x in range(12, 200) if R(x) > 220 and R(x) % 2 == 0))
Ответ: \(222\)