Пробный урок
📘 ЕГЭ по информатике 2027 · задание 25 из 27

Задание 25 ЕГЭ по информатике: Собственная программа обработки целочисленной информации

Что проверяет задание 25, сколько баллов оно приносит и сколько времени на него закладывать — и 3 примера в формате ФИПИ с подробным решением и ответом.

Уровень
высокий
Максимум
1 балл
Время
~20 минут
Компьютер
нужен (специальное ПО)

Примеры задания 25 с решениями

Сначала попробуйте решить сами, затем откройте решение и сверьте ответ

Пример 1

Назовём маской числа последовательность цифр, в которой также могут встречаться символы: ? — ровно одна произвольная цифра; * — любая последовательность цифр произвольной длины, в том числе пустая. Например, маске 123*4?5 соответствуют числа 123405 и 12300405. Найдите все натуральные числа, не превышающие 10¹⁰, которые соответствуют маске 1?2139*4 и делятся на 2023 без остатка. В ответе запишите найденные числа в порядке возрастания, справа от каждого — результат его деления на 2023.
Показать решение и ответ
1. Перебирать все числа до 10¹⁰ слишком долго. Перебираем только кратные 2023 — их в 2023 раза меньше. 2. Проверку маски берём из модуля fnmatch: в нём ? и * означают то же, что в условии.
from fnmatch import fnmatch                  # fnmatch понимает маски с ? и *
for k in range(2023, 10**10 + 1, 2023):     # перебираем только числа, кратные 2023
    if fnmatch(str(k), '1?2139*4'):          # число подходит под маску
        print(k, k // 2023)                  # число и частное от деления на 2023
Программа работает несколько секунд — это нормально.

Ответ: 162139404 80148 1321399324 653188 1421396214 702618 1521393104 752048

Пример 2

Назовём маской числа последовательность цифр, в которой также могут встречаться символы: ? — ровно одна произвольная цифра; * — любая последовательность цифр произвольной длины, в том числе пустая. Найдите все натуральные числа, не превышающие 10⁸, которые соответствуют маске 12??36*1 и делятся на 317 без остатка. В ответе запишите найденные числа в порядке возрастания, справа от каждого — результат его деления на 317.
Показать решение и ответ
1. Перебираем только числа, кратные 317, и проверяем маску модулем fnmatch.
from fnmatch import fnmatch                 # fnmatch понимает маски с ? и *
for k in range(317, 10**8 + 1, 317):       # только числа, кратные 317
    if fnmatch(str(k), '12??36*1'):         # число подходит под маску
        print(k, k // 317)                  # число и частное

Ответ: 12433691 39223 12563661 39633 12693631 40043 12823601 40453

Пример 3

Пусть M — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то M = 0. Найдите пять наименьших натуральных чисел, больших 700 000, для которых M оканчивается на 4. В ответе запишите найденные числа в порядке возрастания, справа от каждого — значение M.
Показать решение и ответ
1. Наименьший нетривиальный делитель ищем перебором до корня; наибольший — парный к нему: n / d.
def M(n):                                   # сумма наименьшего и наибольшего нетривиальных делителей
    d = 2                                   # ищем наименьший делитель, начиная с 2
    while d * d <= n:                       # дальше корня искать незачем
        if n % d == 0:                      # нашли наименьший делитель
            return d + n // d               # наибольший — парный к нему
        d += 1                              # пробуем следующий
    return 0                                # делителей нет — число простое

count = 0                                   # сколько чисел уже нашли
n = 700001                                  # начинаем с первого числа больше 700 000
while count < 5:                            # нужно пять чисел
    m = M(n)                                # считаем M
    if m % 10 == 4:                         # M оканчивается на 4
        print(n, m)                         # печатаем число и M
        count += 1                          # ещё одно найдено
    n += 1                                  # следующее число

Ответ: 700004 350004 700009 41194 700023 233344 700024 350014 700044 350024

Не получается задание 25? Разберём на пробном уроке

Бесплатно покажем, как решать задание 25 и похожие, определим пробелы и составим план подготовки к ЕГЭ.

Записаться бесплатно

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

Структура экзамена, баллы и темы — на странице программы ЕГЭ по информатике