import math


def get_proper_divisors(n):
    proper_divisors = set([1])
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            proper_divisors.add(i)
            proper_divisors.add(n / i)
    return proper_divisors


def is_abundant(n):
    return sum(get_proper_divisors(n)) > n


def get_abundant_numbers_smaller(n):
    ret = []
    for i in range(1, n):
        if is_abundant(i):
            ret.append(i)
    return ret


def is_sum_of_two_abundant(n, abundant_numbers):
    abundant_numbers_set = set(abundant_numbers)
    for a1 in abundant_numbers:
        if a1 > n:
            return False
        elif (n - a1) in abundant_numbers_set:
            return True
            
    
if __name__ == "__main__":
    abundant_numbers = get_abundant_numbers_smaller(30000)
    cannot_be_written_as_sum_of_abundant = []
    for i in range(28129):
        if not is_sum_of_two_abundant(i, abundant_numbers):
            cannot_be_written_as_sum_of_abundant.append(i)
    print(sum(cannot_be_written_as_sum_of_abundant))
