Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-6281
- Просмотры: 554
- Изменено: 5 апреля 2025
(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число \(N\) \((N > 3).\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится двоичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если \(N\) делится на \(4,\) то в конец этой записи дописывается две последние цифры двоичной записи;
- б) если \(N\) не делится на \(4,\) то остаток от деления \(N\) на \(4\) умножается на \(2\) в двоичной системе счисления и дописывается в начало двоичной записи числа \(N.\)
- Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(110000_2 = 48_{10},\) а для исходного числа \(10_{10} = 1010_2\) результатом является число \(1001010_2 = 74_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(68.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
r = N % 4
bn = f'{r*2:b}' + bn if r else bn + bn[-2:]
return int(bn, 2)
#print(R(12), R(10))
print(max(N for N in range(4, 70) if R(N) < 68))
Ответ: \(16\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


