-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path023.py
37 lines (29 loc) · 1.28 KB
/
023.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python
# A perfect number is a number for which the sum of its proper
# divisors is exactly equal to the number. For example, the sum of the
# proper divisors of 28 would be 1 + 2 + 4 + 7 + 14 = 28, which means
# that 28 is a perfect number.
# A number n is called deficient if the sum of its proper divisors is
# less than n and it is called abundant if this sum exceeds n.
# As 12 is the smallest abundant number, 1 + 2 + 3 + 4 + 6 = 16, the
# smallest number that can be written as the sum of two abundant
# numbers is 24. By mathematical analysis, it can be shown that all
# integers greater than 28123 can be written as the sum of two
# abundant numbers. However, this upper limit cannot be reduced any
# further by analysis even though it is known that the greatest number
# that cannot be expressed as the sum of two abundant numbers is less
# than this limit.
# Find the sum of all the positive integers which cannot be written as
# the sum of two abundant numbers.
import euler
K = 28123
abundant = []
for i in range(K):
d = euler.proper_divisors(i)
if sum(d) > i:
abundant.append(i)
sums = set()
for i in range(len(abundant)):
for j in range(i, len(abundant)):
sums.add(abundant[i]+abundant[j])
print sum([x for x in range(K) if x not in sums])