コード例 #1
0
ファイル: p012.py プロジェクト: nonette/euler
def p012(N=500):
    table = numty.factortable(10**5)
    n = 1
    while True:
        if numdivs(table[n])*numdivs(table[(n+1)/2]) > N:
            return n*(n+1)/2
        n += 1
        if numdivs(table[n/2])*numdivs(table[n+1]) > N:
            return n*(n+1)/2
        n += 1
コード例 #2
0
def p012(N=500):
    table = numty.factortable(10**5)
    n = 1
    while True:
        if numdivs(table[n]) * numdivs(table[(n + 1) / 2]) > N:
            return n * (n + 1) / 2
        n += 1
        if numdivs(table[n / 2]) * numdivs(table[n + 1]) > N:
            return n * (n + 1) / 2
        n += 1
コード例 #3
0
ファイル: p023.py プロジェクト: nonette/euler
def p023():
    abundant = [n for (n,f) in enumerate(numty.factortable(LIMIT))
            if numty.sigma(f) > 2*n > 0]
    abundantset = set(abundant)

    def check_n(n):
        for a in abundant:
            if n-a in abundantset:
                return False
            if n-a < a:
                return True
    
    return sum(n for n in range(LIMIT+1) if check_n(n))
コード例 #4
0
ファイル: p023.py プロジェクト: nonette/euler
def p023():
    abundant = [
        n for (n, f) in enumerate(numty.factortable(LIMIT))
        if numty.sigma(f) > 2 * n > 0
    ]
    abundantset = set(abundant)

    def check_n(n):
        for a in abundant:
            if n - a in abundantset:
                return False
            if n - a < a:
                return True

    return sum(n for n in range(LIMIT + 1) if check_n(n))
コード例 #5
0
ファイル: p047.py プロジェクト: nonette/euler
def p047(N=4, lim=150000):
    table = [len(x.keys()) for x in numty.factortable(lim)]
    for n in range(len(table)):
        if all(table[n+i]>=N for i in range(N)):
            return n
    return p047(N, 10*lim)
コード例 #6
0
ファイル: p069.py プロジェクト: nonette/euler
def p069(N=10**6):
    table = numty.factortable(N+1)
    best = max((1.0*n/phi(n, table[n]), n) for n in range(N+1))
    return best[1]
コード例 #7
0
def p072(N=10**6):
    table = numty.factortable(N + 1)
    return sum(p069.phi(n, table[n]) for n in range(2, N + 1))
コード例 #8
0
def p069(N=10**6):
    table = numty.factortable(N + 1)
    best = max((1.0 * n / phi(n, table[n]), n) for n in range(N + 1))
    return best[1]
コード例 #9
0
ファイル: p072.py プロジェクト: nonette/euler
def p072(N=10**6):
    table = numty.factortable(N+1)
    return sum(p069.phi(n, table[n]) for n in range(2,N+1))