Задание 5. Информатика. ЕГЭ. Поляков-6621

Просмотры: 46
Изменено: 3 марта 2025

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

  1. Строится двоичная запись числа \(N.\)
  2. Если число кратно \(5,\) то слева дописывается \(1,\) справа две последние цифры (младшие разряды). Иначе слева дописывается двоичное представления остатка от деления числа на \(5.\)
  3. Полученная таким образом запись является двоичной записью искомого числа \(R.\)

Например, для числа \(13 = 1101_2\) получается \(111101_2 = 61,\) для числа \(10 = 1010_2\) получается \(1101010_2 = 106.\) Укажите максимальное число \(R,\) не превышающее \(223,\) которое может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.

Решение:

Python


def R(N):
    bn = f'{N:b}'
    if N % 5 == 0:
        bn = '1' + bn + bn[-2:]
    else:
        bn = f'{N % 5 : b}' + bn
    return int(bn, 2)

print(max(R(N) for N in range(5, 230) if R(N) < 223))

Ответ: \(219\)