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

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

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

  1. Из числа N вычитается остаток от деления N на 4
  2. Строится двоичная запись полученного результата
  3. К этой записи дописываются справа ещё два разряда по следующему правилу:
    • складываются все цифры построенной двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
    • над этой записью проводятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
  4. Результат переводится в десятичную систему и выводится на экран.

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

Укажите такое наибольшее N, для которого результат работы данного алгоритма меньше числа 47.

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

for N in range(1, 20)[::-1]:
    N_1 = N - N % 4
    N_bin = f'{N_1:b}'
    N_bin += str(sum(map(int, N_bin)) % 2)
    N_bin += str(sum(map(int, N_bin)) % 2)
    R = int(N_bin, 2)
    
    if R < 47:
        print(N)
        break
Разберём это задание на бесплатном пробном занятии

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

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