import util def triangle_numbers(): _sum = 0 x = 1 while True: _sum += x yield _sum x += 1 for x in triangle_numbers(): if len(util.get_factors(x)) > 500: print x break
from util import get_factors from util import get_triangle_number result = 0 i = 0 while True: i += 1 x = get_triangle_number(i) factors = get_factors(x) if len(factors) >= 500: result = x break print(result)
import util proper_divisor_sums = {} amicable_sum = 0 for x in xrange(1, 10001): proper_divisors = sorted(util.get_factors(x))[:-1] _sum = sum(proper_divisors) if _sum in proper_divisor_sums and proper_divisor_sums[_sum] == x: amicable_sum += _sum amicable_sum += x proper_divisor_sums[x] = _sum print amicable_sum