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

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

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

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

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

Ответ: \(162\).

Для полного перебора достаточно взять \(N\) от 1 до 173: полученное число \(R\) всегда больше \(N\), поэтому при \(R \le 173\) число \(N\) также не может быть больше 173.

y = []

# Перевод числа в троичную систему счисления
def ternary(n):
    s = ''
    while n > 0:
        s = str(n % 3) + s
        n //= 3
    return s


for n in range(1, 174):
    x = ternary(n)

    if n % 3 == 0:
        # Дописываем две последние троичные цифры
        x = x + x[-2:]
    else:
        # Остаток умножаем на 5 и переводим в троичную систему
        x = x + ternary((n % 3) * 5)

    r = int(x, 3)

    if r <= 173:
        y.append(r)

print(max(y))

Программа выведет:

162

Проверка для максимального значения:

\[ 18_{10}=200_3. \]

Число \(18\) кратно 3, поэтому дописываем две последние цифры 00:

\[ 200_3 \rightarrow 20000_3. \]

Переводим в десятичную систему:

\[ 20000_3=2\cdot3^4=2\cdot81=162. \]

Следующее кратное 3 число \(21\) уже даст значение не меньше \(9\cdot21=189>173\), поэтому ответ максимальный.

Обсуждение

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

сделай программу для питона

Нейросеть
def in_three(n):
    s = ''
    while n > 0:
        s = str(n % 3) + s
        n //= 3
    return s


maximum = 0

for N in range(1, 174):
    s = in_three(N)

    if N % 3 == 0:
        s += s[-2:]
    else:
        s += in_three((N % 3) * 5)

    R = int(s, 3)

    if R <= 173 and R > maximum:
        maximum = R

print(maximum)

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

162