Задание 5. Информатика. ЕГЭ. Поляков-4221
- Просмотры: 16
- Изменено: 14 апреля 2025
(В.Н. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится четверичная запись числа \(N.\)
- К этой записи дописывается ещё три или четыре разряда по следующему правилу: если \(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\)