Задача #3095

Алгоритмы

Уровень ЕГЭ

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

1. Строится четверичная запись числа N.

2. Далее эта запись обрабатывается по следующему правилу:

а) если сумма цифр четверичной записи кратна 4, то все нули в записи меняются на 3, а все 3 меняются на нули, после к числу приписывается 21 справа;

б) если сумма цифр четверичной записи не кратна 4, то к записи справа приписывается 22 после первые два разряда, полученной записи, меняются на 11 соответственно, разряды нумеруются слева направо, начиная с 1.

Полученная таким образом запись является четверичной записью искомого числа R.

Укажите минимальное число N, для которого результатом работы алгоритма является наименьшее число R, превышающее 200.

В ответе это число запишите в десятичной системе счисления.

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

1011
def cc(n):
s = ''
while n != 0:
s = str(n % 4) + s
n //= 4
return s


def f(n):
s = cc(n)
if sum(list(map(int, list(s)))) % 4 == 0:
s = s.replace('0', '*').replace('3', '0').replace('*', '3')
s += '21'
else:
s += '22'
s = '11' + s[2:]
return int(s, 4)


mi = float('inf')
ans = float('inf')
for i in range(1, 100000):
if f(i) > 200:
if f(i) < mi:
mi = f(i)
ans = i
print(ans)
Быстрый переход
Перейти к задаче