Example #1
0
from euler import primesieve

print sum(primesieve(2*10**6))
Example #2
0
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)
Example #3
0
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)
Example #4
0
    '''
    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
Example #5
0
			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)
Example #6
0
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)
Example #7
0
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()
Example #8
0
from euler import primesieve

print sum(primesieve(2 * 10**6))
Example #9
0
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()
Example #10
0
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