コード例 #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