Задание 5. Информатика. ЕГЭ. Поляков-6999
- Просмотры: 434
- Изменено: 1 февраля 2025
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N.\)
- В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
- Запись записывается справа налево (в обратную сторону).
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Для какого минимального значения \(N\) в результате работы алгоритма получится число \(123?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
p = -1
for i in range(len(bn) - 1, -1, -1):
if bn[i] == '0':
p = i
break
if p == -1:
return None
bn = bn[:p] + bn[:2] + bn[p + 1:] if p < len(bn) else ''
return int(bn[::-1], 2)
for N in range(4, 100):
if R(N) and R(N) == 123:
print(N)
break
Ответ: \(47\)