def sum_of_divisors(n, sum_of_divisors_cache):
    if n in sum_of_divisors_cache:
        return sum_of_divisors_cache[n]
    else:
        sum_of_divisors = sum(all_proper_divisors(n))
        sum_of_divisors_cache[n] = sum_of_divisors
        return sum_of_divisors
def _abundant_numbers(less_than):
    result = set()
    for n in range(1, less_than):
        if n < sum(all_proper_divisors(n)):
            result |= {n}
    return result