Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится троичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
- если число N делится на 3, то к этой записи справа дописываются две последние троичные цифры;
- если число N на 3 не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма умножается на 3, переводится в троичную систему счисления дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа R.
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 810 = 223 результатом является число 221103 = 22810, а для исходного числа 910 = 1003 это число 100003 = 8110
Укажите минимальное нечётное число R, большее 208, которое может быть получено с помощью описанного алгоритма.
В ответе запишите это число в десятичной системе счисления.
def to_ternary(num):
result = ''
while num:
result += str(num % 3)
num //= 3
return result[::-1]
for N in range(1, 300):
N_tern = to_ternary(N)
remainder = N % 3
if remainder == 0:
N_tern += N_tern[-2:]
else:
sum_d = sum(map(int, N_tern))
N_tern += to_ternary(sum_d * 3)
R = int(N_tern, 3)
if R > 208 and R % 2:
print(R)
break
