ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 5033. ЕГКР 2025

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

  1. Строится троичная запись числа N.
  2. Далее эта запись обрабатывается по следующему правилу:
    • если число N делится на 3, то к этой записи дописываются две последние троичные цифры;
    • если число N на 3 не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма переводится в троичную систему счисления и дописывается в конец числа.
      Полученная таким образом запись является троичной записью искомого числа R.
  3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 1110 = 1023 результатом является число 102103 = 10210, а для исходного числа 1210 = 1103 это число 110103 = 11110.

Укажите минимальное чётное число R, большее 220, которое может быть получено с помощью описанного алгоритма.

В ответе запишите это число в десятичной системе счисления

def to_ternary(num):
    result = ''
    while num:
        result += str(num % 3)
        num //= 3
    return result[::-1]


res = []

for N in range(1, 10_000):
    # Строим троичную запись
    R = to_ternary(N)
    # Если число делится на 3
    if N % 3 == 0:
        # 2 последние цифры
        R += R[-2:]
    # Если не делится
    else:
        # Сумма цифр
        sum_d = sum(map(int, R))
        # Сумму в троичную СС
        sum_d = to_ternary(sum_d)
        R += sum_d
    # Переводим в десятичную
    R = int(R, 3)
    # Формируем ответ
    if R % 2 == 0 and R > 220:
        res.append(R)
        
print(min(res))
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие