ЕГЭ Информатика 2023: Задача 5 — Решение и анализ

Данное задание проверяет умение восстанавливать исходные данные линейного алгоритма по результатам его работы. Задание базового уровня, на его выполнение отводится 4 минуты согласно спецификации ЕГЭ.

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

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

  1. Строится двоичная запись числа n.
  2. Эта запись обрабатывается по следующему правилу:
    • а) Если сумма цифр двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на «10».
    • б) Если сумма цифр двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на «11».
  3. Полученная запись является двоичной записью числа R.

Вопрос: Укажите минимальное число n, после обработки которого с помощью этого алгоритма получается число R больше 40. Запишите это число в десятичной системе счисления.

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

Для решения задачи эффективнее использовать язык программирования. Ниже приведён код на Python, реализующий данный алгоритм:

for n in range(1, 100):  # Перебор чисел от 1 до 99 (ограничение для эффективности)
    s = bin(n)[2:] # Получение двоичной записи числа, отрезаем "0b"

    if s.count('1') % 2 == 0: # Проверка на чётность суммы цифр (единиц)
        s += '0'
        s = '10' + s[2:] # Замена первых двух разрядов на "10"
    else:
        s += '1'
        s = '11' + s[2:] # Замена первых двух разрядов на "11"

    r = int(s, 2) # Преобразование двоичной строки в десятичное число

    if r > 40:
        print(n) # Вывод минимального n, удовлетворяющего условию
        break # Прерывание цикла после нахождения первого решения

Код перебирает натуральные числа от 1 до 99. Для каждого числа строится двоичная запись, обрабатывается согласно условию задачи, и полученное двоичное число преобразуется обратно в десятичное. Как только находится число R больше 40, соответствующее значение n выводится на экран и цикл прерывается.

Ответ

Запустив данный код, получаем ответ: 16. Минимальное число n, удовлетворяющее условию задачи, равно 16.

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