Задание 5. Информатика. ЕГЭ. Статград. 01.04.2025-1
- Просмотры: 832
- Изменено: 1 апреля 2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится троичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если сумма цифр троичной записи числа \(N\) делится на \(3,\) то в этой записи два левых разряда заменяются на «\(112\)»;
- б) если сумма цифр троичной записи числа \(N\) на \(3\) не делится, то эта сумма переводится в троичную систему счисления и дописывается в конец числа.
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 102_3\) результатом является число \(1122_3 = 44,\) а для исходного числа \(12 = 110_3\) результатом является число \(1102_3 = 38.\)
Укажите максимальное чётное число \(R,\) не превышающее \(679,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
s = sum([int(x) for x in tr])
if s % 3 == 0:
tr = '112' + tr[2:]
else:
tr += conv(s)
return int(tr, 3)
#print(R(11), R(12))
print(max(R(x) for x in range(12, 700) if R(x) < 679 and R(x) % 2 == 0))
Ответ: \(662\)