summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/projecteuler/023.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/projecteuler/023.py b/src/projecteuler/023.py
new file mode 100644
index 0000000..d109302
--- /dev/null
+++ b/src/projecteuler/023.py
@@ -0,0 +1,37 @@
+import math
+
+limit = 28123
+numbers = set()
+
+def abundant(n):
+ divisors = set()
+ divisors.add(1)
+ for i in xrange(2, int(math.sqrt(n))+1):
+ if n % i == 0:
+ divisors.add(i)
+ divisors.add(n/i)
+
+ if sum(divisors) > n:
+ return True
+ else:
+ return False
+
+def sum_abundant(n):
+ for i in numbers:
+ if n-i in numbers:
+ return True
+ return False
+
+
+for n in xrange(2, limit+1):
+ if abundant(n):
+ numbers.add(n)
+
+sum = 0
+
+for n in xrange(limit+1):
+ if not sum_abundant(n):
+ sum += n
+
+print sum
+