Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-6283
- Просмотры: 275
- Изменено: 5 апреля 2025
*(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число \(N\) \((N > 10).\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится двоичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если \(N\) делится на 10, то в конец этой записи дописывается четыре последние цифры двоичной записи;
- б) если \(N\) не делится на \(10,\) то последняя цифра числа \(N\) возводится в квадрат, делится нацело на \(2,\) переводится в двоичную запись и дописывается в конец двоичной записи числа \(N.\)
- Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(11_{10} = 1011_2\) результатом является число \(10110_2 = 22_{10},\) а для исходного числа \(20_{10} = 10100_2\) результатом является число \(101000100_2 = 324_{10}.\)
Укажите количество значений числа \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(680.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
r = N % 10
bn += f'{r**2 // 2:b}' if r else bn[-4:]
return int(bn, 2)
print(len([N for N in range(11, 680) if R(N) < 680]))
Ответ: \(68\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


