кодесурса
«Python

Вызовы Python: вычислить сумму всех дружных чисел под заданным числом

script1adsense2code
script1adsense3code

Задачи Python - 1: Упражнение 46 с решением

Напишите программу на Python для вычисления суммы всех дружных чисел под заданным числом.

Из Википедии - Дружные числа - это два разных числа, связанных так, что сумма правильных делителей каждого равна другому числу. (Правильный делитель числа является положительным фактором этого числа, кроме самого числа. Например, правильные делители числа 6 равны 1, 2 и 3.)
Наименьшая пара дружных чисел - (220, 284). Они дружны, потому что правильными делителями 220 являются 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 и 110, из которых сумма равна 284; и правильными делителями 284 являются 1, 2, 4, 71 и 142, из которых сумма равна 220.

Пример решения :

Код Python:

def amicable_sum(num):
	divisor_sum = [0] * num
	for i in range(1, len(divisor_sum)):
		for j in range(i * 2, len(divisor_sum), i):
			divisor_sum[j] += i	
	# Find all amicable pairs 
	result = 0
	for i in range(1, len(divisor_sum)):
		j = divisor_sum[i]
		if j != i and j < len(divisor_sum) and divisor_sum[j] == i:
			result += i
	return str(result)
print(amicable_sum(500))
print(amicable_sum(10000))

Пример вывода:

 504
31626

Блок - схема:

«Python

Редактор кода Python:

Внесите свой код и комментарии через Disqus.

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

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code