Задача к ЕГЭ по информатике на тему «Запись числа в двоичной системе счисления» №2

Автомат обрабатывает натуральное число N  по следующему алгоритму:

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

Пример. Дано число N = 13  . Алгоритм работает следующим образом:

  1. Двоичная запись числа N : 1101  .
  2. Сумма цифр двоичной записи 3  , остаток от деления на 2  равен 1  , новая запись 11011  .
  3. Сумма цифр полученной записи 4  , остаток от деления на 2  равен 0  , новая запись 110110  .
  4. На экран выводится число 54  .

Какое наименьшее число, большее 150  , может появиться на экране в результате работы автомата?

for n in range(1, 10000):
    r = bin(n)[2:]
    r = r + str(r.count(’1’) % 2)
    r = r + str(r.count(’1’) % 2)
    r = int(r, 2)
    if r > 150:
        print(r)
        break

Ответ: 154
Оцените статью
Я решу все!