Задание 5. Информатика. ЕГЭ. Шастин. 19.09.2024
- Просмотры: 415
- Изменено: 24 ноября 2024
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом
- Строится двоичная запись числа \(N\).
- Далее эта запись обрабатывается по следующему правилу:
- если число \(N\) делится на \(5\), то в начало записи дописываются три первые двоичные цифры;
- если число \(N\) на \(5\) не делится, то остаток от деления умножается на \(5\), переводится в двоичную запись и дописывается в конец числа.
- Полученная таким образом запись является двоичной записью искомого числа \(R\).
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(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\)