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

№ 5103. Типовая задача

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

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

Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 310 = 112 результатом является число 1112 = 710.

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

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

for N in range(1, 10):
    # Шаг 1
    N_bin = f'{N:b}'
    # Шаг 2
    if N % 2:
        N_bin += "1"
    else:
        N_bin += "0"
    # Шаг 3
    if N_bin.count("1") % 3:
        R_bin = '10' + N_bin[2:]
    else:
        R_bin = '11' + N_bin[2:]
        
    R = int(R_bin, 2)
    if R >= 26:
        print(N)
        break
Разберём это задание на бесплатном пробном занятии

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

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