Новая Школа - онлайн-школа подготовки к ЕГЭ
Информатика · 11 класс Задача №3641725
А
Аноним
08 сентября 2026 16:29 · публичный вопрос
А
Аноним

На вход алгоритма подается натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится троичная запись числа N. 2. Если Nкратно 3,то в конец записи…

Запрос пользователя

На вход алгоритма подается натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1.  Строится троичная запись числа N. 2.  Если Nкратно 3,то в конец записи дописываются две последние троичные цифры. 3.  Если Nне кратно 3,то остаток от деления умножаетсяна 5,переводится в троичную систему и затем дописывается к числу. Полученная таким образом запись является троичной записью искомого числа R. Укажите максимальное число R,не превышающее 173,которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.

Ответ нейросети

Ответ: 162.

Обозначим остаток от деления \(N\) на 3.

  • Если \(N\equiv1\pmod3\), дописывается \(5=12_3\), поэтому
    \[ R=9N+5. \] Максимальное подходящее \(N\equiv1\pmod3\) — \(16\): \[ R=9\cdot16+5=149. \]

  • Если \(N\equiv2\pmod3\), дописывается \(10=101_3\), поэтому
    \[ R=27N+10. \] Максимальное подходящее \(N\) — \(5\): \[ R=27\cdot5+10=145. \]

  • Если \(N\) кратно 3, дописываются две последние троичные цифры \(N\).
    Берём \(N=18\): \[ 18=200_3. \] Последние две цифры — \(00\), значит, \[ R=20000_3=2\cdot81=162. \]

Следующее кратное 3 число \(N=21\) уже даёт \(R>173\). Поэтому максимальное значение:

\[ \boxed{162} \]

Обсуждение

2 сообщения
А
Аноним

напиши программу

Нейросеть

Например, на Python:

def to_ternary(n):
    if n == 0:
        return "0"

    s = ""
    while n > 0:
        s = str(n % 3) + s
        n //= 3
    return s


best = 0

# Так как R > N, достаточно проверить N до 173
for n in range(1, 174):
    ternary_n = to_ternary(n)

    if n % 3 == 0:
        suffix = ternary_n[-2:]
    else:
        suffix = to_ternary((n % 3) * 5)

    r = int(ternary_n + suffix, 3)

    if r <= 173:
        best = max(best, r)

print(best)

Результат работы программы:

162