На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится троичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то слева дописывается «1», а справа — «02»;
б) если число N на 3 не делится, то остаток от деления числа на 3 умножается на 4, переводится в троичную запись и дописывается в начало числа.
Полученная таким образом запись является троичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 11 = 1023 результатом является число 221023 = 227, а для исходного числа 12 = 1103 результатом является число 1110023 = 353.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее, чем 135.
Приведём решение задачи на языке Python.
def troika(x):
s = ''
while x > 0:
s += str(x%3)
x //= 3
s = s[::-1]
return s
for N in range(100):
s = troika(N)
if N % 3 == 0:
s = '1' + s + '02'
else:
s = troika((N % 3) * 4) + s
R = int(s,3)
if R > 135:
print(N)
break
Ответ: 6.

