Задание 5. Информатика. ЕГЭ. Поляков-6883
- Просмотры: 133
- Изменено: 20 февраля 2025
(К. Багдасарян) Алгоритм получает на вход натуральное число \(N > 4\) и строит по нему новое число \(R\) следующим образом:
- Строится пятеричная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если число \(N\) делится на \(5,\) то в конец дописываются две последние цифры пятеричной записи числа;
- б) если число \(N\) на \(5\) не делится, то остаток от его деления на \(5\) умножается на \(7,\) переводится в пятеричную запись и дописывается в конец числа.
Укажите минимальное число \(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\)