from euler import primesieve print sum(primesieve(2*10**6))
from euler import primesieve def circular(n): ''' Return a list of n rotation ''' s = str(n) return [int(s[i:] + s[:i]) for i in range(len(s))] def f(n): # filter out all primes > 10 and containing 024568 if n < 10: return True s = str(n) for each in '024568': if each in s: return False else: return True def iscircularprime(n): return all(each in primes for each in circular(n)) primes = [x for x in primesieve(10**6) if f(x)] print sum(iscircularprime(x) for x in primes)
''' a special permutation ls = [a, b, c, d, e] # in asc order produce: abc abd abe acd ace ade bcd bce bde cde ''' for i in range(len(ls)): for j in range(i+1, len(ls)): for k in range(j+1, len(ls)): yield [ls[i], ls[j], ls[k]] from euler import primesieve, isarithmetic s = set(primesieve(10000)) - set(primesieve(1000)) d = {} for each in sorted(s): digits = tuple(sorted(map(int,str(each)))) if digits in d: d[digits].append(each) else: d[digits] = [each] for digits in sorted(d): if len(d[digits]) >= 3: for each in triple(d[digits]): if isarithmetic(each): print each
curr = 0 elif (curr % a == 0): primefactors.add(a) curr = curr / a i = 0 else: i+=1 a = primelist[i] if (n not in primefactormap): primefactormap[n] = primefactors; return primefactors; #create prime list primes = euler.primesieve(1000001) primelist = [] for i in range(0,len(primes)): if primes[i]: primelist.append(i) now = datetime.datetime.now() print ("Starttime - " + str(now)) max_pn = 0 max_n = 0 n_pn = 0 for n in range(2,1000001): if (n % 10000 == 0): print(n)
from euler import primesieve ''' f(n) = n*n + a*n + b when n = 0, b must be a prime. And |b| < 1000, so b is one of the primes < 1000. ''' primes = set(primesieve(10**5)) def allprimes(n, a, b): ''' True if f(n, a, b) is prime for n in [0...n) ''' ls = [n*n + a*n + b for n in range(n)] largest = max(ls) if largest < 10**5: return all(l in primes for l in ls) else: raise Exception('Prime set not big enough. Max value %d' % largest) from itertools import * def mostprimes(a, b): ''' count how many primes for consecutive values of n ''' for n in count(): f = n*n + a*n + b if f not in primes: break return n prime1k = primesieve(1000)
from euler import primesieve MAX = 1000000 p1m = primesieve(MAX) p1ms = set(p1m) l = len(p1m) def maxchainlen(MAX): # longest chain of consequtive primes that sums < MAX s = 0 for i in range(l): s += p1m[i] if not s < MAX: return i def find(): mcl = maxchainlen(MAX) for chainlen in range(mcl, 0, -1): for i in range(l - chainlen): s = sum(p1m[i:i + chainlen]) if s >= MAX: break if s in p1ms: return s print find()
from euler import primesieve print sum(primesieve(2 * 10**6))
from euler import primesieve MAX = 1000000 p1m = primesieve(MAX) p1ms= set(p1m) l = len(p1m) def maxchainlen(MAX): # longest chain of consequtive primes that sums < MAX s = 0 for i in range(l): s += p1m[i] if not s < MAX: return i def find(): mcl = maxchainlen(MAX) for chainlen in range(mcl, 0, -1): for i in range(l-chainlen): s = sum(p1m[i:i+chainlen]) if s >= MAX: break if s in p1ms: return s print find()
from euler import primesieve ''' f(n) = n*n + a*n + b when n = 0, b must be a prime. And |b| < 1000, so b is one of the primes < 1000. ''' primes = set(primesieve(10**5)) def allprimes(n, a, b): ''' True if f(n, a, b) is prime for n in [0...n) ''' ls = [n * n + a * n + b for n in range(n)] largest = max(ls) if largest < 10**5: return all(l in primes for l in ls) else: raise Exception('Prime set not big enough. Max value %d' % largest) from itertools import * def mostprimes(a, b): ''' count how many primes for consecutive values of n ''' for n in count(): f = n * n + a * n + b if f not in primes: break