Задание 5. Информатика. ЕГЭ. Поляков-6811
- Просмотры: 64
- Изменено: 24 февраля 2025
(ЕГЭ-2023) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится троичная запись числа \(N.\)
- Если число \(N\) делится на \(3,\) к троичной записи слева приписывается \(1,\) а справа – \(02;\) иначе остаток от деления числа на \(3\) умножается на \(4,\) переводится в троичную систему и дописывается в конец троичной записи.
- Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(11\) троичная запись \(102_3\) преобразуется в запись \(10222_3 = 107,\) для числа \(12\) троичная запись \(110_3\) преобразуется в \(111002_3 = 353.\) Укажите максимальное значение \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее чем \(199.\)
Решение:
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 = '1' + tr + '02'
else:
tr += conv(N % 3 * 4)
return int(tr, 3)
print(max(N for N in range(1, 200) if R(N) < 199))
Ответ: \(20\)