Задание 5. Информатика. ЕГЭ 2024. Крылов-2

Просмотры: 17
Изменено: 18 сентября 2024

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

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

Например, для исходного числа \(11 = 23_4\) результатом является число \(2312_4 = 182\), а для исходного числа \(12 = 30_4\) это число \(3030_4 = 204\).

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

Решение:

Python


def conv(n):
    res = ''
    while n:
        r = n % 4
        n //= 4
        res = str(r) + res
    return res

def R(N):
    ans = conv(N)
    r = N % 4

    if r == 0:
        ans += ans[-2:]
    else:
        ans += conv(2*r)

    return int(ans, 4)

N = 11

for i in range(11, 1000):
    if R(i) < 369:
        N = i

print(N)

Ответ: \(89\)