Пример #1
0
def main2():
    s = 0
    n = 953
    i = 0
    m = 0
    primes = sieve(47618)
    for i in range(len(primes)):
        s += primes[i]
        if s > 999999:
            break
        if isprime(s):
            print(s)
            n = s
            m = i + 1
        else:
            for j in range(i):
                if i + 1 - j < m:
                    break
                s -= primes[j]
                if isprime(s):
                    n = s
                    m = i - j
                    break

    return n
Пример #2
0
def max_consecutive(primes):
  for i in reversed(range(len(primes))):
    for j in reversed(range(len(primes)-i+1)):
      total=sum(primes[j:j+i])
      if isprime(total) and total<1000000:
        return total, j, i
  return False
Пример #3
0
def max_consecutive(primes):
    for i in reversed(range(len(primes))):
        for j in reversed(range(len(primes) - i + 1)):
            total = sum(primes[j:j + i])
            if isprime(total) and total < 1000000:
                return total, j, i
    return False
Пример #4
0
def goldbach2(i, lesser_primes):
    if isprime(i):
        return True
    else:
        for j in lesser_primes:
            base = sqrt((i - j) / 2)
            if base == int(base):
                return True
    return False
Пример #5
0
def goldbach2(i,lesser_primes):
  if isprime(i):
    return True
  else:
    for j in lesser_primes:
      base=sqrt((i-j)/2)
      if base==int(base):
        return True
  return False
Пример #6
0
def euler35():
	ans = []
	primeset = [i for i in range(2,1000000) if pr.isprime(i)]
	for i in primeset:
		if i not in ans:
			prime = str(i)
			circprimes = set()
			iscirc = True
			for j in range(0, len(prime)):
				circprime = int(prime[j:] + prime[:j])
				circprimes.add(circprime)
				if not pr.isprime(circprime):
					iscirc = False
					break
			if iscirc:
				ans.extend(circprimes)
	print ans
	print len(ans)
Пример #7
0
def euler37():
	ans = []
	starting = 10
	while len(ans) < 11:
		primes = [i for i in range(starting, starting+10000) if pr.isprime(i)]
		starting += 10000
		for prime in primes:
			primestr = (str(prime), str(prime))
			trunc = True
			while len(primestr[0]) > 1:
				primestr = (primestr[0][1:], primestr[1][:len(primestr[1])-1])
				if not (pr.isprime(int(primestr[0])) and pr.isprime(int(primestr[1]))):
					trunc = False
					break
			if trunc:
				ans.append(prime)
	print ans
	print sum(ans)
Пример #8
0
def main():
    l = []
    n = '11'
    while True:
        if n[0] in '2357' and n[-1] in '357' and '0' not in n and isprime(
                int(n)):
            if len(n) == 2:
                l.append(int(n))
            else:
                for i in range(2, len(n)):
                    if not isprime(int(n[:i])) or not isprime(int(n[-i:])):
                        break
                else:
                    l.append(int(n))
        if len(l) == 11:
            break
        n = str(int(n) + 2)

    return sum(l)
Пример #9
0
def testprime(n, primeset, compset):
	if n in primeset:
		return True
	elif n in compset:
		return False
	elif ip.isprime(n):
		primeset.add(n)
		return True
	else:
		compset.add(n)
		return False
Пример #10
0
def euler72():
	bound = 11+1
	ans = 0
	tot = dict()
	tot[4] = 2
	primes = [i for i in range(bound) if ip.isprime(i)]
	for prime in primes:
		tot[prime] = prime-1
	for i in range(2, bound):
		ans += totient(i, tot)
	print ans
	return tot
Пример #11
0
def largestPrimes(num):
    import sys
    sys.path.append(
        'D:\\Users\\Jesus Chua\\Documents\\GitHub\\ProjectEuler\\CommonLibrary'
    )
    from isprime import isprime
    largestPrimes = []
    for i in range(num, 1, -1):
        if isprime(i):
            largestPrimes.append(i)
            if len(largestPrimes) >= 10:
                return largestPrimes
    return largestPrimes
Пример #12
0
def euler51():
	ansdict = dict()
	found = False
	winner = ''
	for candidate in xrange(10001, 100000000, 2):
		if ip.isprime(candidate):
			digits = str(candidate)
			for digit in set(digits):
				pattern = digits.replace(digit, '*')
				if pattern not in ansdict:
					ansdict[pattern] = [0,[]]
					for otherdigit in range(10):
						newcandidate = int(pattern.replace('*', str(otherdigit)))
						if ip.isprime(newcandidate) and len(str(newcandidate)) == len(str(candidate)):
							ansdict[pattern][0] += 1
							ansdict[pattern][1].append(int(newcandidate))
							if ansdict[pattern][0] == 8:
								winner = pattern
								found = True
		if found == True:
			break
	print ansdict[winner][1]
	print min(ansdict[winner][1])
Пример #13
0
def main1():
    #47619 = 1.000.000 / 21
    n = 953
    m = 21
    primes = sieve(47618)
    for j in range(m, 600, 2):
        for i in range(len(primes)):
            p = sum(primes[i:i + 1 + j])
            if isprime(p) and p < 1000000:
                print(p)
                print(primes[i:i + 1 + j])
                #m += 2
                n = p

            if i + m > len(primes) or p > 999999:
                break
        print(j)

    return n
Пример #14
0
def main(limit):
    n = 0
    primes = sieve(limit)
    for p in primes:
        i = 0
        p = str(p)
        p2 = p
        while isprime(int(p2), primes=primes):
            i += 1
            if p2 == p[-1] + p[0:-1]:
                break
            p2 = p2[1:] + p2[0]

        if i == len(p):
            n += 1

    if limit > 10:
        n += 1  #because 11 is an exception

    return n
Пример #15
0
def main(alimit, blimit):
    """
If limit = 100, then |a| < 100
"""
    longest_seq = (0,0,0) #length, a, b

    primes = sieve(1000)
    if alimit % 2 == 0:
        v = 1
        
    for a in range(-alimit+v, alimit, 2):
        for b in primes:
            n = 0
            while isprime(n**2 + a*n + b):
                n += 1

            if n > longest_seq[0]:
                longest_seq = (n, a, b)

    return longest_seq
Пример #16
0
def primedivs(n):
    count = 0
    for i in range(1, n + 1):
        if isprime(i) == 1:
            if n % i == 0:
                print i
Пример #17
0
from isprime import isprime

total = 0
for i in range(2, 2 * 10**6):
    if isprime(i):
        total += i

print(total)
Пример #18
0
from isprime import isprime
from itertools import permutations

digits=''.join(map(str, range(1,10)))
primes=[]
for i in reversed(range(1,10)):
    for nums in permutations(digits[:i], i):
        nums=''.join(nums)
        if isprime(int(nums)):
            primes.append(int(nums))
    if primes:
        break
print max(primes)
Пример #19
0
from isprime import isprime
for i in range (1, 99):
    print (i, isprime(i))
Пример #20
0
import isprime

print(isprime.isprime(0))
print(isprime.isprime(2))
print(isprime.isprime(3))
print(isprime.isprime(4))
print(isprime.isprime(91))
print(isprime.isprime(97))
Пример #21
0
def testNumber(a,n):
    if isprime(n):
        return True
    res = modexp(a, n-1, n)
    return res != 1
Пример #22
0
from isprime import isprime
from math import sqrt

primes=[]

def goldbach2(i,lesser_primes):
  if isprime(i):
    return True
  else:
    for j in lesser_primes:
      base=sqrt((i-j)/2)
      if base==int(base):
        return True
  return False

flag=True
i=1
while flag:
  i+=1
  if isprime(i):
    primes.append(i)
    flag=True
  else:
    flag=goldbach2(i, primes)

print i
Пример #23
0
def circular_prime(i):
  for idx in range(len(str(i))):
    if not isprime(rotation(i,idx)):
      return False
  return True
Пример #24
0
from isprime import isprime

from lottery import lottery

print(isprime(91))
print(isprime(97))

lottery_numbers = lottery()

for number in lottery_numbers:
    print(number)
    print(isprime(number))
Пример #25
0
from isprime import isprime

n = input('enter a number ')

isprime(n)
Пример #26
0
from isprime import isprime

for n in range(2,20):
    print(n, ' is ', isprime(n))
Пример #27
0
import isprime

print(isprime.isprime(7))
print(isprime.isprime(8))
print(isprime.isprime(91))
print(isprime.isprime(97))

z = int(input("enter any integer: "))

res = isprime.isprime(z)

if res == True:
    print(str(z) + " is prime")
else:
    print(str(z) + " is not prime")

print(res)
Пример #28
0
def main():
    for n in permutations('7654321', 7):
        if isprime(int(''.join(n))):
            return ''.join(n)
Пример #29
0
def primedivs(n):
	count=0
	for i in range(1,n+1):
		if(isprime(i)==1):
			if(n%i==0):
				print i
Пример #30
0
from isprime import isprime

best=(0,0)
nmax=0
for a in range(-999,1000):
  for b in range(-999,1000):
    n=0
    while isprime(n**2+a*n+b):
      n+=1
    if n > nmax:
      nmax=n
      best=(a,b)
      print 'new n is', n
      print 'new pair is', best
print 'best n is', nmax
print 'best pair is', best
print 'best product is', best[0]*best[1]
Пример #31
0
def iscatprime(a,b):
	return ip.isprime(int(str(a) + str(b))) and ip.isprime(int(str(b) + str(a)))
Пример #32
0
from isprime import isprime

n=input('enter a number ')

isprime(n)