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

№ 5039. Основная волна 2025

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

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

Например, для исходного числа 1210 = 11002 результатом является число 11001002 = 10010, а для исходного числа 410 = 1002 это число 100112 = 1910.

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

for N in range(1, 100)[::-1]:
    N_bin = f'{N:b}'
    remainder = N % 3
    if remainder == 0:
        N_bin += N_bin[-3:]
    else:
        N_bin += f'{remainder * 3:b}'
    R = int(N_bin, 2)
    if R < 130:
        print(N)
        break
Разберём это задание на бесплатном пробном занятии

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

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