Python Math: сумма всех дружных чисел от 1 до указанных чисел
Python Math: Упражнение-14 с решением
Напишите программу на Python для суммирования всех дружных чисел от 1 до указанных чисел.
Примечание. Дружественные числа - это два разных числа, связанных между собой так, что сумма правильных делителей каждого равна другому числу. (Правильный делитель числа является положительным фактором этого числа, кроме самого числа. Например, правильные делители числа 6 равны 1, 2 и 3.)
Пример решения : -
Код Python:
def amicable_numbers_sum(limit):
if not isinstance(limit, int):
return "Input is not an integer!"
if limit < 1:
return "Input must be bigger than 0!"
amicables = set()
for num in range(2, limit+1):
if num in amicables:
continue
sum_fact = sum([fact for fact in range(1, num) if num % fact == 0])
sum_fact2 = sum([fact for fact in range(1, sum_fact) if sum_fact % fact == 0])
if num == sum_fact2 and num != sum_fact:
amicables.add(num)
amicables.add(sum_fact2)
return sum(amicables)
print(amicable_numbers_sum(9999))
print(amicable_numbers_sum(999))
print(amicable_numbers_sum(99))
Пример вывода:
31626 504 0
Иллюстрированная презентация:
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на Python, чтобы узнать, достаточно ли заданного числа.
Далее: написать программу на Python, которая возвращает сумму всех делителей числа.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования