Перейти к содержимому

Задание 5 ЕГЭ по информатике 2027: алгоритм над двоичной записью числа

Задание 5до 1 баллаалгоритм над двоичной записью числа
Раздел
Алгоритмы и программирование
Максимальный балл
1 балл
Уровень
базовый
Что проверяет
Формальное исполнение простого алгоритма, записанного на естественном языке, или умение создавать линейный алгоритм для формального исполнителя с ограниченным набором команд, или умение восстанавливать исходные данные линейного алгоритма по результатам его работы
Что нужно сделать
Выполнить алгоритм, который меняет двоичную или другую запись числа, и найти наименьшее или наибольшее подходящее число.
Как записать ответ
только число: целое, без пробелов и единиц измерения
Время
Около 4 минут по обобщённому плану ФИПИ
Элемент кодификатора
3.3
Компьютер
Специальное ПО по плану ФИПИ не нужно: задание решают рассуждением, программа — для проверки
Файл к заданию
Нет — все данные в условии
В 2026 году
Тоже задание 5

Задание 5 ЕГЭ по информатике 2027 года проверяет, по формулировке ФИПИ, «формальное исполнение простого алгоритма, записанного на естественном языке»: нужно выполнить алгоритм, который перестраивает запись числа в двоичной или троичной системе, и назвать подходящее число. Файла к заданию нет, специализированное ПО не требуется, ответ вводится как одно целое число.

Уровень базовый: по обобщённому плану ФИПИ на задание отводится около 4 минут, за верный ответ — 1 балл, частичного балла нет. В 2027 году тематика не изменилась: в 2026 году под этим номером было то же задание. Средний процент выполнения по данным методических рекомендаций ФИПИ — 61,1 в 2026 году и 45,5 в 2025-м.

Ниже — три типа задания с разбором и решением на Python. Разбор демоверсии 2027 года и типичные ошибки — в конце страницы.

Тренажёр задания 5

Десять заданий номера 5 из банка тренажёра — с файлами, как на станции КЕГЭ. Решайте в песочнице Python прямо на странице или у себя; ответ проверяется по ключу, после проверки — верный ответ, разбор и решение на Python, а при ошибке — разбор от ИИ. Кнопка «Ещё 5 таких» у типа задания ниже даёт задания одного типа.

Загружаем задание…

Задание 5 вместе с остальными — в вариантах целиком.

Типы задания 5 с решением

Двоичная запись: наименьшее R больше порога

Пример условия

На вход алгоритма подаётся натуральное число N. Строится двоичная запись N. Если N чётное, к записи слева дописывается 101, а справа 01; если N нечётное, справа дописывается только 01. Полученная запись — двоичная запись искомого числа R. Например, для N = 4 получается R = 177, для N = 29 — R = 117. Укажите наименьшее R, превышающее 995.

Для этого примера ответ — 997.

1. Перебираем все N по возрастанию и для каждого строим R: у чётного N — «101» слева и «01» справа, у нечётного — только «01» справа. 2. Среди значений, которые больше 995, запоминаем минимальное — оно и уходит в ответ. 3. Монотонности здесь нет: R(N) не растёт вместе с N, поэтому пропускать N нельзя, а останавливать перебор по первому подходящему N — ошибка. Просматриваются все N.

На примере: N = 249 (нечётное) даёт 1111100101₂ = 997 — это наименьшее подходящее значение. При этом N = 62, меньшее, даёт 1529: подходящее, но не минимальное. Справа всегда дописывается «01», поэтому все R нечётны и 996 получиться не может.

Решение на Python
best = None
for n in range(1, 1000):
    s = bin(n)[2:]          # двоичная запись N
    if n % 2 == 0:
        r = int('101' + s + '01', 2)   # чётное N
    else:
        r = int(s + '01', 2)           # нечётное N
    if r > 995 and (best is None or r < best):
        best = r
print(best)

Ответ: 997

Двоичная запись: наибольшее или наименьшее N

Пример условия

На вход алгоритма подаётся натуральное число N. Строится двоичная запись N. Если N чётное, к этой записи и слева, и справа дописывается по 10; если N нечётное, слева дописываются две единицы, а справа нуль. Полученная запись — двоичная запись искомого числа R. Например, для N = 12 получается R = 178, для N = 15 — R = 126. Укажите наибольшее число N, после обработки которого получается R, не превышающее 4067.

Для этого примера ответ — 497.

1. Спрашивают наибольшее N, а не R: перебираем N по возрастанию и запоминаем последнее подходящее. 2. Граница перебора: R(N) больше N, поэтому при N не меньшем 4067 условие R ≤ 4067 нарушено — хватает перебора N от 1 до 4067. 3. Строим R приписыванием разрядов и сравниваем с порогом; набор разрядов у чётных и нечётных N разный. 4. Печатаем последнее подходящее N.

На примере: R(497) = 4066 ≤ 4067. Следующее чётное N = 498 даёт 1011111001010₂ = 6090, нечётное N = 499 — 4070; оба больше порога, значит 497 наибольшее.

Решение на Python
best = 0
for n in range(1, 4068):
    s = bin(n)[2:]          # двоичная запись N
    if n % 2 == 0:
        r = int('10' + s + '10', 2)
    else:
        r = int('11' + s + '0', 2)
    if r <= 4067:
        best = n   # перебор идёт по возрастанию, поэтому в best останется наибольшее
print(best)

Ответ: 497

Троичная запись: наибольшее R не больше порога

Пример условия

На вход алгоритма подаётся натуральное число N. Строится троичная запись N. Если N делится на 3, слева дописывается единица, а справа 20; если остаток равен 1, слева дописываются две двойки, а справа 21; если остаток равен 2, слева дописывается 20, а справа две двойки. Полученная запись — троичная запись искомого числа R. Например, для N = 21 получается R = 438, для N = 31 — R = 6118. Укажите наибольшее R, не превышающее 9208.

Для этого примера ответ — 9186.

1. R(N) больше N, поэтому условие R ≤ 9208 возможно только при N < 9208 — перебора N от 1 до 9208 достаточно. 2. Троичную запись строим делением на 3: остатки дают цифры с конца. 3. Приписываем разряды по остатку от деления N на 3 и переводим строку через int(s, 3) — основание именно 3, а не 2. 4. Из подходящих значений запоминаем наибольшее: здесь тоже нельзя останавливаться на первом найденном.

На примере: N = 291 делится на 3, его запись 101210₃, после дописывания получается 110121020₃ = 9186 ≤ 9208. Уже N = 292 (остаток 1) даёт 55123 — порог превышен.

Решение на Python
def to_base3(n):
    # троичная запись числа n: остатки от деления на 3, собранные с конца
    digits = ''
    while n > 0:
        digits = str(n % 3) + digits
        n //= 3
    return digits

best = 0
for n in range(1, 9209):
    s = to_base3(n)
    if n % 3 == 0:
        r = int('1' + s + '20', 3)
    elif n % 3 == 1:
        r = int('22' + s + '21', 3)
    else:
        r = int('20' + s + '22', 3)
    if r <= 9208 and r > best:
        best = r
print(best)

Ответ: 9186

Шаблон кода на Python

Алгоритм над двоичной записью числа

Перебор N с построением записи по правилу из условия. Правило меняется от варианта к варианту, перебор и перевод — нет; to_base нужна, если запись не двоичная.

Python
def to_base(n, base):
    digits = ''
    while n > 0:
        digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'[n % base] + digits
        n //= base
    return digits or '0'

for n in range(1, 1000):
    b = bin(n)[2:]               # или to_base(n, 3)
    # правило из условия: например, дважды дописать
    # справа остаток от деления суммы цифр на 2
    for _ in range(2):
        b += str(b.count('1') % 2)
    r = int(b, 2)
    if r > 130:                  # условие на R
        print(n)                 # наименьшее N
        break
Вывод
33

Шаблоны кода ко всем заданиям

Как выполнять задание

  1. Откройте текст задания на станции: файла нет, вся формулировка на экране, ответ вводится в поле там же.
  2. Выпишите правило дописывания для каждого случая — обычно это чётность N или остаток от деления на 3.
  3. Определите, что ищут: наименьшее R выше порога, наибольшее R не выше порога или наибольшее N. От этого зависит, что печатать.
  4. Соберите R строкой: bin(n)[2:] для двоичной записи, остатки от деления на 3 — для троичной; приписывание разрядов — конкатенация, перевод — int(s, 2) или int(s, 3).
  5. Проверьте программу на примерах из условия: вынесите построение R в функцию и вызовите её для названных там N — она должна вернуть те же значения. Только после этого пускайте перебор на итоговый ответ.
  6. В ответ идёт одно целое число без пробелов и единиц измерения.

Что нужно знать

  • Двоичная запись. bin(n)[2:] возвращает запись без префикса 0b; чётность числа — это её последняя цифра.
  • Приписывание разрядов. Слева добавляются старшие разряды, справа — младшие; удобнее собрать строку и перевести её: int(s + '01', 2).
  • Перевод в систему с основанием q. Деление на q, остатки собираются с конца — так строится троичная запись.
  • Перебор вместо неравенства. Разбирать неравенство по разрядам долго, а перебор N от 1 занимает доли секунды. Опора: запись после дописывания удлиняется, поэтому R(N) больше N.
  • Проверка. Оба числовых примера из условия — готовые тесты для программы.

Как оценивается

Проверка автоматическая, по ключу: ответ должен быть записан в форме из условия и полностью совпасть с эталоном. Код и черновики не проверяют — значение имеет только ответ. За верный ответ — 1 балл, частичного балла нет.

Критерии всех заданий экзамена — на странице критериев ЕГЭ.

Разбор задания демоверсии 2027

В демоверсии 2027 года задание 5 файла не имеет: ответ вводится в поле, ключ ФИПИ — 100. У чётного N к двоичной записи слева и справа дописывается по две единицы, у нечётного слева появляется единица, справа — два нуля.

Примеры из условия: N = 13 = 1101₂ нечётное, получаем 1110100₂ = 116; N = 6 = 110₂ чётное, получаем 1111011₂ = 123 — оба совпадают.

Теперь наименьшее R > 95. Число 95 = 1011111₂ занимает семь разрядов, значит и R не короче семи разрядов. Чётные трёхразрядные N дают 115 и 123, а наименьшее значение даёт N = 9 = 1001₂: 1100100₂ = 100. Записи из восьми и более разрядов дают числа от 128. Ключ — 100.

Типичные ошибки

Разряды приписывают к десятичной записи

Дописывать нужно к записи в той системе счисления, которая названа в условии: bin(n)[2:] для двоичной, деление на основание — для троичной. Приписывание к десятичному числу даёт неверный ответ.

Перебор взят со слишком узким пределом

R(N) всегда больше N, потому что запись только удлиняется. Значит, для условия R ≤ P достаточно перебрать N от 1 до P. Слишком узкая граница теряет ответ.

Печатают найденное R вместо N

В формулировке «укажите наибольшее число N, после обработки которого получается число R, не превышающее …» ищут именно N. Программа, которая запоминает и печатает R, выдаст другое число.

Строгий и нестрогий порог перепутаны

«Превышающее 95» — это R > 95, а «не превышающее 4067» — это R ≤ 4067. Замена знака на противоположный даёт соседнее число и лишает балла: неравенство полезно выписать до написания кода.

Пропуск N из-за ожидания монотонности

R(N) не растёт вместе с N: меньшее N может дать большее R. Нельзя остановить перебор, найдя первый подходящий N, и нельзя начинать его с середины — просматривают все N и выбирают минимум или максимум среди подходящих значений.

Вопросы и ответы

Есть ли шаблон для задания 5?

Да, общий шаблон — перебор N. Для каждого N строится запись в нужной системе, к ней приписываются разряды, строка переводится в число через int(s, q), затем проверяется условие на R. Отличаются задания только системой счисления, правилом дописывания и тем, что печатать — R или N.

Нужен ли компьютер для задания 5?

Специализированное ПО не требуется, файла нет, ответ — одно число. Числа небольшие, посчитать можно и вручную, но на станции быстрее написать короткую программу: она заодно перепроверит оба примера из условия.

Как решать задание 5 с троичной системой?

Так же, как с двоичной, но запись строится делением на 3, а перевод в число идёт через int(s, 3). Цифры троичной записи — 0, 1 и 2, поэтому int(s, 2) не подходит: на цифре 2 он выдаст ошибку.

Как понять, что печатать — R или N?

По последней фразе условия. «Укажите наименьшее число R, превышающее …» — печатают R, среди подходящих значений ищут минимум. «Укажите наибольшее число N, после обработки которого получается число R, не превышающее …» — печатают N, среди подходящих ищут максимум.

Изменилось ли задание 5 в 2027 году?

Тематика та же, что в 2026 году: по обобщённому плану это по-прежнему «формальное исполнение простого алгоритма», уровень базовый, около 4 минут, 1 балл без частичного. Среди изменённых тем 2027 года (10, 13 и 23) задание 5 не названо.

Другие задания раздела «Алгоритмы и программирование»

По демоверсии, спецификации и кодификатору ФИПИ 2027
Обновлено:

Все задания ЕГЭ по информатике →