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

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

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

  1. Число \(N\) переводится в систему счисления с основанием \(19.\)
  2. Далее эта запись обрабатывается по следующему правилу:
    • а) согласные буквы \((B, \, C, \, D, \, F, \, G, \, H)\) заменяются на \(5;\)
    • б) в начало полученной записи дописывается остаток от деления числа \(N\) на \(19\) в \(19\)-ричной системе счисления;
    • в) две последние цифры записи переставляются в начало (например, из строки \(12345\) получается \(45123).\)
  3. Действия а)-в) в п. 2. повторяются еще раз.

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

Решение:

Python


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

def R(x):
    tmp = conv(x)
    for _ in range(2):
        for ch in 'BCDFGH':
            tmp = tmp.replace(ch, '5')
        tmp = conv(x % 19) + tmp
        tmp = tmp[-2:] + tmp[:-2]
    return tmp

max_R = 0
for N in range(100_000, 1_000_000):
    t = R(N)
    if sum(int(x, 19) for x in t) % 7 == 0:
        max_R = max(max_R, int(t, 19))
print(max_R)

Ответ: \(893871724\)