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

Просмотры: 16
Изменено: 14 апреля 2025

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

  1. Строится шестнадцатеричная запись числа \(N // 2,\) где "\(//\)" — операция деления нацело.

  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\)