На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится троичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр троичной записи числа N делится на 3, то в этой записи два левых разряда заменяются на «112»;
б) если сумма цифр троичной записи числа N на 3 не делится, то эта сумма переводится в троичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 11 = 1023 результатом является число 11223 = 44, а для исходного числа 12 = 1103 результатом является число 11023 = 38.
Укажите минимальное чётное число R, большее 702, которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Приведём решение Левочкина Владимира на языке Python.
for N in range(1,100):
X = N
stroka = ''
while X > 0:
stroka = str(X % 3) + stroka
X = X // 3
summa = 0
for i in stroka:
summa = summa + int(i)
stroka_temp = ''
if summa % 3 == 0:
stroka = '112' + stroka[2:]
else:
while summa > 0:
stroka_temp = str(summa % 3) + stroka_temp
summa = summa // 3
stroka = stroka + stroka_temp
result = int(stroka,3)
if result > 702:
print(result)
break
Ответ: 718.

