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

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

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

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

Например, для исходного числа 12 = 148 результатом является число 14468 = 806, а для исходного числа 777 = 14118 это число 411468 = 16998.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, равное N

# Функция для подсчета чётных цифр
def count_evens(num):
    evens = sum([1 for i in num
                 if int(i, 8) % 2 == 0])
    return evens


res = []
for N in range(10000):
    # Строим 8-ричную запись
    R = f'{N:o}'
    # Если кол-во нечётно
    if count_evens(R) % 2:
        R = R[-3:] + '46'
    # Если кол-во чётно
    else:
        R = f'{(N % 8 * 5):o}' + R
    # Переводим в десятичную
    R = int(R, 8)
    # Формируем ответ
    if N == 12:
        print(R)
        break
Разберём это задание на бесплатном пробном занятии

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

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