ЕГЭ Информатика 2020: Задача 20 — решение

Задача заключается в определении наименьшего числа x, при вводе которого алгоритм, представленный ниже, выведет сначала число 6, а затем число 7.

Условие задачи

Алгоритм, записанный на нескольких языках программирования, принимает на вход число x и выводит два числа: l и m. Необходимо найти наименьшее значение x, при котором l = 6 и m = 7.

Анализ алгоритма

Алгоритм содержит цикл с предусловием:

пока x > 0:
    m += 1
    если x % 2 == 0:
        l += 1
    x //= 2

Переменная m считает количество итераций цикла, то есть, количество бит в двоичном представлении числа x. Переменная l подсчитывает количество нулевых бит в двоичном представлении числа x.

Решение задачи

Переменная m подсчитывает количество цифр в двоичном представлении числа x, а переменная l — количество нулей в этом представлении. По условию задачи, l = 6 и m = 7. Это означает, что двоичное представление числа x должно содержать 7 цифр, из которых 6 — нули. Единственный вариант — это число, состоящее из одной единицы и шести нулей: 1000000<sub>2</sub>.

Преобразование этого двоичного числа в десятичную систему счисления дает 64<sub>10</sub>.

Наименьшее значение x, удовлетворяющее условию задачи, равно 64. Понимание работы алгоритма и перевод задачи в двоичную систему счисления значительно упростили решение. Ответ: 64.

Что будем искать? Например,программа