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
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
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))
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))
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)
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]
def p072(N=10**6): table = numty.factortable(N + 1) return sum(p069.phi(n, table[n]) for n in range(2, N + 1))
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]
def p072(N=10**6): table = numty.factortable(N+1) return sum(p069.phi(n, table[n]) for n in range(2,N+1))