示例#1
0
文件: euler12.py 项目: bmdavi3/euler
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
示例#2
0
文件: 0012.py 项目: Saiyan/euler
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)

示例#3
0
文件: euler21.py 项目: bmdavi3/euler
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