Задание 5. Информатика. ЕГЭ. Поляков-6703
- Просмотры: 76
- Изменено: 3 марта 2025
(ЕГЭ-2023) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится троичная запись числа \(N.\)
- Если число \(N\) делится на \(3,\) к троичной записи справа дописываются две её последние цифры, иначе остаток от деления числа на \(3\) умножается на \(5,\) переводится в троичную систему и дописывается в конец троичной записи.
- Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(11\) троичная запись \(102_3\) преобразуется в запись \(102101_3 = 307,\) для числа \(12\) троичная запись \(110_3\) преобразуется в \(11010_3 = 111.\) Укажите минимальное значение \(R,\) большее чем \(133,\) которое может быть результатом работы алгоритма.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 3 == 0 else conv(N % 3 * 5)
return int(tr, 3)
print(min(R(x) for x in range(1, 100) if R(x) > 133))
Ответ: \(141\)