Задание 5. Информатика. ЕГЭ. Поляков-6885
- Просмотры: 81
- Изменено: 20 февраля 2025
(К. Багдасарян) Алгоритм получает на вход натуральное число \(N > 14\) и строит по нему новое число \(R\) следующим образом:
- Строится запись числа \(N\) в системе счисления с основанием \(15.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если число \(N\) делится на \(15,\) то в конец дописываются первые две цифры пятнадцатеричной записи числа;
- б) если число \(N\) на \(15\) не делится, то остаток от его деления на \(15\) умножается на \(13,\) переводится в систему счисления с основанием \(15\) и дописывается в конец числа.
Укажите минимальное число \(R,\) большее \(700,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
alph = '0123456789ABCDE'
ans = ''
while N:
ans = alph[N % 15] + ans
N //= 15
return ans
def R(N):
n15 = conv(N)
n15 += n15[:2] if n15[-1] == '0' else conv(int(n15[-1], 15) * 13)
return int(n15, 15)
print(min(R(N) for N in range(15, 700) if R(N) > 700))
Ответ: \(703\)