ЕГЭ информатика 17 задание разбор, теория, как решать.

ЕГЭ информатика 17 задание разбор, теория, как решать.

Полный разбор задания №17 ЕГЭ по информатике

Тип задания: Работа с файлами и последовательностями чисел.

В файле хранится последовательность целых или натуральных чисел.
Необходимо определить количество пар или троек подряд идущих элементов, которые удовлетворяют заданному условию,
а затем вычислить дополнительное значение (например, максимум, минимум или сумму).


Теория

1. Чтение чисел из файла

Данные в файле — это обычно список чисел, записанных друг под другом:

Чтобы считать эти данные в Python, используем конструкцию:

Разбор:

  • open('17.txt') — открывает файл;
  • цикл for x in open(...) перебирает строки из файла;
  • int(x) — превращает каждую строку в число;
  • [...] делает из этого список всех чисел файла.

После этого переменная a — это обычный список Python, например:
[12, 45, -7, 89, ...]


2. Просмотр элементов по парам

Чтобы пройтись по всем подряд идущим парам чисел (1-е со 2-м, 2-е с 3-м и т.д.), используется встроенная функция zip():

Как это работает:

  • a — исходный список;
  • a[1:] — тот же список, но без первого элемента;
  • zip(a, a[1:]) создаёт пары (a[0], a[1]), (a[1], a[2]), (a[2], a[3]) и т.д.

Таким образом, цикл обходит все возможные пары подряд идущих чисел.


3. Просмотр элементов по тройкам

Если в задаче говорится «под тройкой понимаются три идущих подряд элемента последовательности»,
то используем zip() с тремя срезами:

Теперь цикл перебирает (a[0], a[1], a[2]), затем (a[1], a[2], a[3]) и т.д.


4. Логические приёмы, которые часто встречаются

  • (x % 2 == 0) — число чётное;
  • (10 <= x < 100) — двузначное;
  • (1000 <= abs(x) < 10000) — четырёхзначное по модулю (учитываем отрицательные);
  • (x < 0) — отрицательное;
  • (x > 0) — положительное;
  • (x % 10 == 7) — оканчивается на 7;
  • abs(x) % 100 == 25 — оканчивается на 25 (в том числе для отрицательных чисел);
  • (x < 0) + (y < 0) == 1 — ровно одно отрицательное число в паре;
  • (10 <= x < 100) + (10 <= y < 100) == 1 — ровно одно двузначное число.

5. Структура любого решения

📘 Это шаблон, к которому можно подставлять любые условия из задач.


Практические примеры

Пример 1. Демо ЕГЭ 2026

В файле содержится последовательность натуральных чисел.
Определите количество пар последовательности, в которых только один из элементов является двузначным числом, а сумма элементов пары кратна минимальному двузначному элементу последовательности.
В ответе запишите количество, затем наибольшую из сумм таких пар.


Пример 2. Числа могут быть отрицательные

Определите количество пар, в которых элементы не равны, а абсолютное значение их разности делится на минимальный положительный элемент, кратный 35.
В ответ — количество и максимальная сумма.

Важно: используем abs(), так как могут быть отрицательные числа.


Пример 3. Пары с одним отрицательным

Найдите количество пар, в которых ровно одно число отрицательное, а сумма пары больше максимального отрицательного трёхзначного числа, кратного 6.
В ответе запишите количество и наибольшую сумму квадратов элементов таких пар.


Пример 4. Тройки подряд (основная волна 2025)

Определите количество троек элементов последовательности, в которых не более двух из трёх элементов являются четырёхзначными числами, а сумма элементов тройки не больше максимального элемента последовательности, оканчивающегося на 25.


Пример 5. Все числа одного знака (ФИПИ-2025)

Определите количество троек, в которых все числа одного знака, а произведение максимального и минимального элементов тройки больше квадрата минимального трёхзначного числа последовательности, оканчивающегося на 15.
В ответ — количество и минимальное из таких произведений.


Частые ошибки

  • Использование % без abs() при отрицательных числах;
  • Забывают закрыть условия скобками, например if x<0 + y<0==1 вместо (x<0)+(y<0)==1;
  • Неверный диапазон при подсчёте двузначных / трёхзначных чисел;
  • Используют min() или max() без условия фильтрации (возникает ошибка, если список пуст);
  • Путают «не более» (<=) и «ровно» (==).

Итог

Алгоритм решения любого задания №17 одинаковый:

  1. Считать список чисел;
  2. Определить дополнительный элемент (min/max с условием);
  3. Обойти пары или тройки с помощью zip();
  4. Проверить условия задачи;
  5. Добавить подходящее значение в список;
  6. Вывести len() и max() / min() в зависимости от вопроса.

📗 Освоив этот шаблон, вы сможете решать все типы заданий №17 — из демоверсий, ФИПИ, СтатГрада и открытых сборников.