Задание 5. Информатика. ЕГЭ. Поляков-4222
- Просмотры: 16
- Изменено: 14 апреля 2025
(В.Н. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится шестнадцатеричная запись числа \(N // 2,\) где "\(//\)" — операция деления нацело.
- К этой записи дописывается ещё три разряда по следующему правилу: если \(N\) не делится на \(4,\) то слева к нему приписывается "\(F\)", а справа — "\(A0\)". В противном случае слева приписывается "\(15\)", а справа "\(C\)".
Например, \(N = 4_{10} \to 2_{16} \to 152C_{16} = 5420_{10} = R.\)
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является шестнадцатеричной записью искомого числа R. Укажите наибольшее число \(N,\) для которого результат работы алгоритма меньше \(65536.\) В ответ запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
hn = hex(N // 2)[2:]
if N % 4:
return int('F' + hn + 'A0', 16)
return int('15' + hn + 'C', 16)
#print(R(4))
print(max(N for N in range(1, 65536) if R(N) < 65536))
Ответ: \(31\)