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

№ 5037. ЕГКР 2025

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

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

Например, для исходного числа 610 = 203 результатом является число 20203 = 6010, а для исходного числа 410 = 113 это число 11103 = 3910.

Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число не превышающее 150.

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

for N in range(3, 100)[::-1]:
    R = to_ternary(N)
    if N % 3 == 0:
        R += R[-2:]
    else:
        R += to_ternary((N % 3) * 3)
    R = int(R, 3)
    if R <= 150:
        print(N)
        break
Разберём это задание на бесплатном пробном занятии

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

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