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

На вход алгоритма подаётся натуральное число N > 1. Алгоритм строит по нему новое число R следующим образом:

  1. Строится двоичная запись числа N.
  2. Подсчитывается количество нулей, стоящих на нечётных местах и количество единиц, стоящих на чётных в двоичной записи числа N без ведущих нулей. Отсчёт производится слева направо. Старший разряд считать нулевой позицией.
  3. Результатом становится произведение полученных двух чисел.

При каком наименьшем N в результате работы алгоритма получится R = 12?

for n in range(2, 10000):
    s = bin(n)[2:]
    s = str(s)
    sone = 0
    szero = 0
    for i in range(len(s)):
        if i % 2 != 0 and s[i] == "0":
            sone += 1
        elif i % 2 == 0 and s[i] == "1":
            szero += 1
    if abs(sone*szero) == 12:
        print(n)
        break

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