def main(): # 10^4: 30397485 # 10^5: 3039650753 # 10^6: 303963552391 limit = 1000000 global p_list p_list = prime.prime_generator(limit) p_set = set(p_list) s = 0 for i in range(2,limit+1): if i in p_set: s += (i - 1) continue t = totient(i) s += t print(s)
def main(): max = 10**7 # 10^6 :: 783169 global p_list, p_set p_list = prime.prime_generator(int(max//2)+1) p_set = set(p_list) min_n = 0 min_np = 1000000.0 for i in range(1, max+1, 2): f = get_semi_prime(i) if len(f) == 0: continue p = i // f[0] * (f[0] - 1) // f[1] * (f[1] - 1) if is_permutation(i, p): np = float(i) / p if np <= min_np: min_n = i min_np = np print(min_n)
from euler import progress from prime import prime_generator import itertools as it print "Problem 77" primes = [] plen = 74 # good for p in prime_generator(): primes.append(p) if p > plen: break from collections import Counter c = Counter() for i in xrange(2, plen/2+1): print i for x in it.combinations_with_replacement(primes, i): c[sum(x)] += 1 try: print min(filter(lambda x: x[1] >=5000, c.items())) except: pass print filter(lambda x: x[1] >= 5000, c.items()) print min(filter(lambda x: x[1] >=5000, c.items())) #def number_comb_sum(n, primes): # nprimes = filter(lambda x: x < n, primes) # c = set() # for i in xrange(2, n/2 + 1): # c |= set(it.ifilter(lambda x: sum(x) == n, # it.combinations_with_replacement(nprimes, i))) # print len(c)