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

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

*(П. Финкель) На вход алгоритма подаётся пятизначное натуральное число \(N.\) Алгоритм строит по нему новое число R следующим образом:

  1. Число \(N\) переводится в двадцатеричную систему счисления.
  2. Далее эта запись обрабатывается по следующему правилу:
    • а) гласные буквы \((A, \, E, \, I)\) заменяются на \(1;\)
    • б) в конец полученной записи дописывается остаток от деления числа \(N\) на \(20\) в двадцатеричной системе счисления;
    • в) первая цифра переставляется в конец записи.
  3. Действия а)-в) в п. 2. повторяются еще раз.

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

Решение:

Python


def conv(x):
    alph = '0123456789ABCDEFGHIJ'
    ans = ''
    while x:
        ans = alph[x % 20] + ans
        x //= 20
    return ans

def R(x):
    tmp = conv(x)
    for _ in range(2):
        for ch in 'AEI':
            tmp = tmp.replace(ch, '1')
        tmp += conv(x % 20)
        tmp = tmp[1:] + tmp[0]
    return int(tmp, 20)

max_R = 0
for N in range(10_000, 100_000):
    tmp = R(N)
    if tmp % 2030 == 0:
        max_R = max(max_R, tmp)
print(max_R)

Ответ: \(63656740\)