Задание 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