ex exxam.ru
Задания25 из 27
01 Графы: схема дорог и таблица расстояний 02 Логика: фрагмент таблицы истинности, порядок столбцов 03 Базы данных: поиск информации в связанных таблицах 04 Кодирование: условие Фано и двоичное дерево кода 05 Двоичная запись числа: алгоритм строит новое число 06 Исполнитель Черепаха: движение и подсчёт точек 07 Информационный объём: звук и изображения 08 Подсчёт слов: лексикографический список и перебор 09 Электронные таблицы: подсчёт строк по условию 10 Текстовый документ: поиск сочетаний букв по условию 11 Объём данных: мощность алфавита и кодирование 12 Исполнитель МТ (машина на ленте): чтение программы 13 IP-адреса и маски сетей TCP/IP 14 Арифметические выражения и системы счисления 15 Логика: истинность выражения с отрезками и предикатами 16 Рекурсивные функции: чтение и счёт по формулам 17 Обработка целочисленной информации: поиск пар в файле 18 Динамическое программирование: Робот-сборщик монет 19 Игры: выигрышная стратегия первым ходом (куча) 20 Игры: победа Пети своим вторым ходом (куча) 21 Игры: победа Вани первым или вторым ходом (куча) 22 Многопоточные вычисления: максимальное число одновременных процессов 23 Динамика: количество программ исполнителя 24 Обработка символьных строк: поиск подстроки по условию 25 Перебор чисел: делители и сумма M текущее26 Задание 26 нужны файлы27 Задание 27 нужны файлы
25
1 балл демоверсия ЕГЭ-2026 сборник

Перебор чисел: делители и сумма M

Задание 25 · Билет 2 · ЕГЭ по информатике

Билет 1 — демоверсия ЕГЭ-2026; остальные билеты — задания в формате экзамена (открытый сборник или тренировочные по образцу). Это тренировочные материалы, а не официальные КИМ. Ответы пересчитаны и сверены.

Условие

Пусть — сумма различных натуральных делителей целого числа, не считая единицы и самого числа. Напишите программу, которая перебирает целые числа, большие 900000, в порядке возрастания и ищет среди них такие, для которых оканчивается на 5.

Например, для числа 18: .

Вопрос. Запишите в таблицу первые пять найденных чисел в порядке возрастания и соответствующие им значения R.

Обозначения

Пусть — очередное перебираемое число. Пусть — сумма всех собственных делителей числа , кроме 1 и самого . — это не : в складываются только минимальный и максимальный делители (два), а в — все. Пример: у собственные делители 2, 4, 5, 10, поэтому , а .

Попробуйте программой

Необязательно, но удобно: напишите здесь свой код на Python, который найдёт ответ. Если не получится — откройте решение и вставьте готовую программу одной кнопкой.

Решите программой на Python

в браузере

Напишите свой код, который найдёт ответ, и нажмите «Выполнить». Горячая клавиша запуска: Ctrl/⌘ + Enter.

Результат
Здесь появится вывод print().
Не знаешь, как решать?

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

Открыть тренажёр

Решение

Решение

открыто шагов: 5 из 5
1 Шаг 1
Подход. Перебираем числа больше 900000. Здесь считают — сумму всех собственных делителей числа , кроме 1 и самого (у простого числа ). Оставляем те числа, у которых оканчивается на 5.
2 Шаг 2
Делители собирают парами: для каждого до , если делит , добавляют и парный (кроме случая полного квадрата, где ).
3 Шаг 3
Перебираем числа от 900001 вверх и оставляем те, у которых последняя цифра равна 5.
4 Шаг 4
Первые пять подходящих: 900010, 900016, 900024, 900036, 900044.
5 Шаг 5
Их : 720025, 978335, 1350095, 1476155, 729555 — все оканчиваются на 5.

Программа на Python

# R — сумма всех собственных делителей числа, кроме 1 и самого числа.
def R_value(n):
    total = 0
    for k in range(2, int(n ** 0.5) + 1):   # делители до корня
        if n % k == 0:
            total += k                     # делитель k
            if k != n // k:                # парный делитель n / k
                total += n // k
    return total

found = []                                 # первые пять подходящих чисел
n = 900001                                 # перебираем числа больше 900000
while len(found) < 5:
    R = R_value(n)
    if R % 10 == 5:                        # R оканчивается на 5
        found.append((n, R))
    n += 1

for x, R in found:                         # печатаем число и R
    print(x, R)

Правильный ответ этого билета: Первые пять найденных чисел и их R:
ЧислоR
900010720025
900016978335
9000241350095
9000361476155
900044729555
Проверка: независимый перебор даёт числа 900010, 900016, 900024, 900036, 900044 и указанные значения R. Совпадает с опубликованным ответом источника.

Теория и другие билеты

Разбор с нуля, типовые ошибки, частые вопросы и все билеты задания 25 — на странице задания.

Задание 25: теория и другие билеты Практикум