Задание 5. Информатика. ЕГЭ. Шастин. 19.09.2024

Просмотры: 415
Изменено: 24 ноября 2024

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

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

Например, для исходного числа \(12 = 1100_2\) результатом является число \(11001010_2 = 202\).

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

Решение:

Python


def R(N):
    b = bin(N)[2:]
    if N % 5:
       tmp = b + bin(N % 5 * 5)[2:]
    else:
        tmp = b[:3] + b
    return int(tmp, 2)

for N in range(100, 10, -1):
    if N % 2 and R(N) < 313:
        print(N)
        break

Ответ: \(35\)