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

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

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

  1. Строится четверичная запись числа \(N.\)
  2. К этой записи дописывается ещё три или четыре разряда по следующему правилу: если \(N\) нечётное, то слева к нему приписывается "\(2\)", а справа — "\(11\)". В противном случае слева приписывается "\(13\)", а справа "\(02\)".
    Например, \(N = 45_{10} = 231_4 \to 223111_4 = 2773_{10} = R\)

Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа \(N)\) является четверичной записью искомого числа \(R.\) Укажите наименьшее число \(R,\) большее \(1000,\) которое может быть получено с помощью описанного алгоритма. В ответ запишите это число в десятичной системе счисления.

Решение:

Python


def conv(n):
    alph = '0123'
    res = ''
    while n:
        res = alph[n % 4] + res
        n //= 4
    return res

def R(N):
    qn = conv(N)
    if N % 2:
        return int('2' + qn + '11', 4)
    return int('13' + qn + '02', 4)

#print(R(45))
print(min(R(N) for N in range(1, 1000) if R(N) > 1000))

Ответ: \(1858\)