Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-8211
- Просмотры: 1551
- Изменено: 26 декабря 2025
(О. Лысенков) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится четверичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если сумма цифр четверичной записи кратна \(3,\) то все нули в записи меняются на \(2,\) а все цифры \(2\) меняются на \(0,\) а затем к числу слева приписывается \(32;\)
- б) если сумма цифр четверичной записи не кратна \(3,\) то к записи справа приписывается \(33,\) а затем вторая и третья цифры в полученной записи меняются на \(1\) и \(0\) соответственно.
- Полученная таким образом запись является четверичной записью искомого числа \(R.\)
Укажите максимальное число \(N,\) для которого результатом работы алгоритма является наименьшее число \(R,\) превышающее \(320.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def conv(n):
alph='0123'
ans = ''
while n:
ans = alph[n % 4] + ans
n //= 4
return ans
def R(N):
q = conv(N)
s = sum(int(x) for x in q)
if s % 3 == 0:
q = q.replace('0', 'x').replace('2', '0').replace('x', '2')
q = '32' + q
else:
q += '33'
q = q[0] + '10' + q[3:]
return int(q, 4)
mr = min(R(N) for N in range(1, 10000) if R(N) > 320)
print(max(N for N in range(1, 10000) if R(N) == mr))
Ответ: \(31\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


