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

Просмотры: 189
Изменено: 24 ноября 2024

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

  1. Строится запись числа \(N\) в четверичной системе счисления (системе с основанием \(4\)).
  2. Далее эта запись обрабатывается по следующему правилу:
    а) если число \(N\) делится на \(4\), то к этой записи дописываются две последние цифры четверичной записи;
    б) если число \(N\) на \(4\) не делится, то остаток от его деления \(4\) умножается на \(5\), переводится в четверичную систему счисления и дописывается в конец числа.

Полученная таким образом запись является четверичной записью искомого числа \(R\). Например, для исходного числа \(17 = 101_4\) результатом является число \(10111_4 = 277\), а для исходного числа \(24 = 120_4\) это число \(12020_4 = 392\).

Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), меньшее \(555\).

Решение:

Python


def conv(n):
    a = ''

    while n:
        a = str(n % 4) + a
        n //= 4

    return a

def R(N):
    t = conv(N)

    t += t[-2:] if t[-1] == '0' else conv(N % 4 * 5)

    return int(t, base=4)

a = [N for N in range(1, 400) if R(N) < 555]

print(a[-1])

Ответ: \(34\)