Задание 5. Информатика. ЕГЭ. Поляков-3940

Просмотры: 39
Изменено: 14 апреля 2025

(Е. Джобс) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:

  1. Строится двоичная запись числа \(N.\)
  2. В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
  3. Запись записывается справа налево (в обратную сторону).
  4. Результат переводится в десятичную систему счисления.

Для какого минимального значения \(N\) в результате работы алгоритма получится число \(123?\)

Решение:

Python


def R(N):
    bn = f'{N:b}'
    if bn.count('0') == 0:
        return -1
    f = bn[:2]
    return int(bn[::-1].replace('0', f[::-1], 1), 2)

print(min(N for N in range(2, 1000) if R(N) == 123))

Ответ: \(47\)