29 lines
504 B
Python
29 lines
504 B
Python
# amicable pairs
|
|
|
|
from functools import reduce
|
|
import util
|
|
|
|
target = 31626
|
|
|
|
def sum_proper_divisors (nbr):
|
|
proper_divisors = util.divisors(nbr)[0:-1]
|
|
|
|
return reduce(lambda x, y: x + y, proper_divisors)
|
|
|
|
r = 10000
|
|
|
|
amicable_numbers = []
|
|
|
|
for i in range(1, r + 1):
|
|
s = sum_proper_divisors(i)
|
|
|
|
if (s != i and sum_proper_divisors(s) == i):
|
|
amicable_numbers.append(i)
|
|
|
|
|
|
sum_amicables = reduce(lambda x, y: x + y, amicable_numbers)
|
|
|
|
print(sum_amicables)
|
|
print(sum_amicables == target)
|
|
|