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