Информатика: ОГЭ и ЕГЭ

Тренировка ЕГЭ · задание 25 · сумма всех делителей

Задание 25 ЕГЭ: сумма всех делителей

Сумма всех делителей числа. Тема номера — делители и маски чисел. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.

Пример

Найдите пять наименьших натуральных чисел, больших 578 278, у которых сумма всех натуральных делителей (включая 1 и само число) кратна 67.

В ответе запишите найденные числа в порядке возрастания, справа от каждого — сумму его делителей.

Ответ578342 867516; 578477 578478; 578520 1881360; 578608 1188044; 578610 1543680

Решение

Делители ищем парами d и n / d до √n (для полного квадрата корень учитываем один раз) и складываем.

Ответ:
578342 867516
578477 578478
578520 1881360
578608 1188044
578610 1543680

from math import isqrt

def sigma(n):
    total = 0
    for d in range(1, isqrt(n) + 1):
        if n % d == 0:
            total += d + (n // d if d * d != n else 0)
    return total

n, found = 578278, 0
while found < 5:
    n += 1
    s = sigma(n)
    if s % 67 == 0:
        print(n, s)
        found += 1

Решить такую задачу — новый вариант с проверкой

Задание 25 ЕГЭ: другие виды

Все задачи задания 25 вперемешку · разбор: как решать задание 25 · пробные варианты ЕГЭ