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

Просмотры: 133
Изменено: 20 февраля 2025

(К. Багдасарян) Алгоритм получает на вход натуральное число \(N > 4\) и строит по нему новое число \(R\) следующим образом:

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

Укажите минимальное число \(R,\) большее \(200,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.

Решение:

Python


def conv(N):
    alph = '01234'
    ans = ''
    while N:
        ans = alph[N % 5] + ans
        N //= 5
    return ans

def R(N):
    n5 = conv(N)
    n5 += n5[-2:] if n5[-1] == '0' else conv(int(n5[-1], 5) * 7)
    return int(n5, 5)

print(min(R(x) for x in range(5, 200) if R(x) > 200))

Ответ: \(221\)