ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 5201. Авторская задача

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

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

Например, для исходного числа 1110 = 234 результатом является число 22304 = 17210, а для исходного числа 1310 = 314 это число 31314 = 22110.

Укажите минимальное чётное число R, большее 120, которое может быть получено с помощью описанного алгоритма.

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

def convert(num):
    result = ''
    while num:
        result += str(num % 4)
        num //= 4
    return result[::-1]


res = []

for N in range(1, 1000):
    # Строим четверичную запись
    R = convert(N)
    # Если сумма цифр четверичной записи чётная
    if sum(map(int, R)) % 2 == 0:
        # 2 последние цифры
        R += R[-2:]
    # Если нечётная
    else:
        R = '2' + R + '0'
    # Переводим в десятичную
    R = int(R, 4)
    # Формируем ответ
    if R % 2 == 0 and R > 120:
        res.append(R)

print(min(res))
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие