← Все вопросы

Как посчитать сумму всех делителей числа?

Задан 24 месяца назад772 просмотров1 ответ
4

Нужна не сама проверка, а сумма всех делителей числа. Например, у 6 делители 1, 2, 3, 6, сумма = 12. Как собрать такую сумму в коде?

1 ответ

9
✓ Принятый ответ — помог автору

Перебираем все числа от 1 до n, и если делится без остатка — добавляем к накопителю:

n = 6
total = 0
for i in range(1, n + 1):
    if n % i == 0:
        total += i
print(total)  # 12

Коротко то же самое через sum с условием в генераторе:

print(sum(i for i in range(1, n + 1) if n % i == 0))  # 12

Кстати, если сумма делителей без самого числа равна самому числу — оно называется совершенным (как 6: 1+2+3=6).

Ваш ответ

, чтобы ответить на вопрос.