From 30003d04d774310805c961bc92e3dd699b0cc07e Mon Sep 17 00:00:00 2001 From: Linus Miller Date: Thu, 29 Mar 2018 12:57:51 +0200 Subject: [PATCH] Problem 21 --- 0021.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 0021.py diff --git a/0021.py b/0021.py new file mode 100644 index 0000000..1c1e86e --- /dev/null +++ b/0021.py @@ -0,0 +1,28 @@ +# 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) +