Задание 5. Информатика. ЕГЭ. Поляков-6703

Просмотры: 76
Изменено: 3 марта 2025

(ЕГЭ-2023) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:

  1. Строится троичная запись числа \(N.\)
  2. Если число \(N\) делится на \(3,\) к троичной записи справа дописываются две её последние цифры, иначе остаток от деления числа на \(3\) умножается на \(5,\) переводится в троичную систему и дописывается в конец троичной записи.
  3. Полученная таким образом запись является троичной записью искомого числа \(R.\)

Например, для числа \(11\) троичная запись \(102_3\) преобразуется в запись \(102101_3 = 307,\) для числа \(12\) троичная запись \(110_3\) преобразуется в \(11010_3 = 111.\) Укажите минимальное значение \(R,\) большее чем \(133,\) которое может быть результатом работы алгоритма.

Решение:

Python


def conv(n):
    ans = ''
    while n:
        ans = str(n % 3) + ans
        n //= 3
    return ans

def R(N):
    tr = conv(N)
    tr += tr[-2:] if N % 3 == 0 else conv(N % 3 * 5)
    return int(tr, 3)

print(min(R(x) for x in range(1, 100) if R(x) > 133))

Ответ: \(141\)