Задание 5. Информатика. ЕГЭ. Поляков-7667
- Просмотры: 97
- Изменено: 21 февраля 2025
*(П. Финкель) На вход алгоритма подаётся шестизначное натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Число \(N\) переводится в систему счисления с основанием \(19.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) согласные буквы \((B, \, C, \, D, \, F, \, G, \, H)\) заменяются на \(5;\)
- б) в начало полученной записи дописывается остаток от деления числа \(N\) на \(19\) в \(19\)-ричной системе счисления;
- в) две последние цифры записи переставляются в начало (например, из строки \(12345\) получается \(45123).\)
- Действия а)-в) в п. 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\)