示例#1
0
文件: problem12.py 项目: bhuber/pyler
def problem12(n):
    i = 0
    for t in triangle_number_gen():
        i += 1
        factors = PrimeMethods.get_prime_factors(t)
        n_divisors = PrimeMethods.n_factors(factors)
        if n_divisors > n:
            return t
示例#2
0
文件: problem21.py 项目: bhuber/pyler
def problem21(n):
    result = 0
    for a in xrange(2, n + 1):
        b = PrimeMethods.sopdf(a, 1) - a
        a_prime = PrimeMethods.sopdf(b, 1) - b
        if a == a_prime and a != b:
            #print((a, b))
            result += a

    return result
示例#3
0
文件: problem12.py 项目: bhuber/pyler
def problem12_v2(n):
    i = 2
    counts = [0, 0, 1]
    while True:
        t = i * (i + 1) / 2
        counts.append(PrimeMethods.n_divisors(i + 1))
        n_factors = None
        if (i & 1) == 0:
            n_factors = counts[i / 2] * counts[i + 1]
        else:
            n_factors = counts[(i + 1) / 2] * counts[i]

        if n_factors > n:
            return t

        i += 1
示例#4
0
文件: problem23.py 项目: bhuber/pyler
def is_abundant(n):
    if n < 12:
        return False

    spd = PrimeMethods.sopdf(n, 1) - n
    return spd > n