def concatp(p1,p2): d1=int(log(p1,10)+1) d2=int(log(p2,10)+1) if not isprime(p1*10**d2+p2): return False if not isprime(p2*10**d1+p1): return False return True
def make_prime_list(n): prime_list = [] for i in range(2, n + 1): if primes.isprime(i): prime_list.append(i) return prime_list
def pp(): start_time = time.time() digits='123456789' numbers=[] for n in product(digits,repeat=4): if n[-1] not in '24568' and sum([int(x) for x in n])%3 !=0: numbers.append(int(''.join(n))) ps=[] for number in numbers: if isprime(number): ps.append(number) perms=dict() for prime in ps: perm=''.join(sorted(str(prime))) if perm in perms: perms[perm].append(prime) else: perms[perm] = [prime] for x in perms: if len(perms[x])<4: continue d1=[] for n in combinations(perms[x],2): diff=abs(n[1]-n[0]) d1.append([n,diff]) for i in range(len(d1)-1): if diff == d1[i][1]: if n[0] in d1[i][0] or n[1] in d1[i][0]: nums=sorted(list(set([n[0],n[1],d1[i][0][0],d1[i][0][1]]))) concat=str(nums[0])+str(nums[1])+str(nums[2]) print n,d1[i][0],diff,concat print("--- %s seconds ---" % (time.time() - start_time))
def sumofprimes(n): primes = [] for i in xrange(n): if isprime(i): primes.append(i) return sum(primes)
def run_length(a,b): n = 0 while True: #print n if isprime(poly(a,b,n)): n += 1 else: return n
def sum_of_primes(lista): total = 0 for i in lista: if isprime(i): total += i return total
def is_circular_prime(p): rotations = len(str(p)) prime = deque(str(p)) for x in range(rotations): prime_int = int("".join(prime)) if not isprime(prime_int): return False prime.rotate(1) return True
def consecutive_primes(a,b): # n^2 + (a*n) + b n = 0 while True: p = (n * n) + (a * n) + b if not isprime(p): return n n += 1
def check(n): if primes.isprime(n): return (n+2) x=0 while primes.prime(x)<n: square=math.sqrt((n-primes.prime(x))/2.0) if square==int(square): return (n+2) x+=1 print n
def try_move(self, marker, location): # full or past 52 if (location.occupied or location.label > self.locations[-1].label): return if primes.isprime(location.label): # move up to 6 spaces ahead for i in range(1, 6): if self.locations[marker.index + i].occupied: marker.index += i - 1 # space before this occupied one return
def get_num_div(cur_num): num_div = 1 factors = [] for i in range(2, int(np.floor(np.sqrt(cur_num)))): if primes.isprime(i): factors.append(i) powers = [] ind = 0 for i in factors: j = cur_num powers.append(0) cur_power = 0 while j % i == 0: j = j / i cur_power += 1 powers[ind] = cur_power ind += 1 for i in powers: num_div *= (i + 1) return num_div
from time import time from primes import isprime ##def isprime(p): ## if not p%2: ## return False ## for n in range(3,int(p**.5),2): ## if not p%n: ## return False ## return True t1 = time() p = 0 diags = 1 for square in range(3, 99999, 2): diags += 4 for corner in range(1, 4): if isprime((square - 2)**2 + corner * (square - 1)): p += 1 if p / diags <= .1: print(square) break print(time() - t1)
import primes print(primes.isprime(18)) print(primes.all_primes(18)) print(primes.prime_factors(18))
contin=1 x=25 while contin: prime=[int(i) for i in str(primes.prime(x))] for i in range(len(prime)-2): for j in range(i+2): for jj in range(j+1): # if jj==0: # am=Amount+1 # else list2=list(prime) count=0 for k in range(10): list2[i+2]=list2[j+1]=list2[jj]=k if primes.isprime(listToNum(list2)) and list2[0]!=0: count+=1 if count==Amount: print listToNum(prime) print i+2 print j+1 print jj for k in range(10): list2[i+2]=list2[j+1]=list2[jj]=k if primes.isprime(listToNum(list2)) and list2[0]!=0: print listToNum(list2) contin=0 x+=1
import time import primes startTime=time.clock() length =7 n=7654321 contin=1 while True: if n%1000==0:print n if n<10**5:length =6 if n<10**4:length =5 if n<10**3:length =4 contin=1 for i in range(1,length+1): if str(n).count(str(i))!=1: contin=0 break if contin: if primes.isprime(n): print n break n-=1 endTime=time.clock() print endTime-startTime
from primes import prime_list, isprime, prime_list2 from itertools import product primes = prime_list2(10000) composites = [i for i in xrange(3, 10000, 2) if not isprime(i)] square2 = [2 * i * i for i in xrange(1, 100)] sums = list(set(sum(c) for c in product(primes, square2) if sum(c) % 2)) sums.sort() print sums[:25] print[c for c in composites if not c in sums][:25] result = False
def isprime(n): if n <= max(P): return n in P return primes.isprime(n)
def check_for_sequence(primelist, start): if start + 6660 > 9999: return False if not start in primelist: return False if not start + 3330 in primelist: return False if not start + 6660 in primelist: return False return True primelist = [] for i in xrange(1000, 10000): if isprime(i): primelist.append(i) def get_starts(primelist): results = [] for i in primelist: if check_for_sequence(primelist, i): results.append(i) return results def check_permutations(number): ''' Specialized function to see if a number, when increased by 3330 is a permutation of itself
def test_is_prime(self): self.assertTrue(primes.isprime(11)) self.assertTrue(not primes.isprime(10))
from primes import isprime def check_for_sequence(primelist, start): if start + 6660 > 9999: return False if not start in primelist: return False if not start + 3330 in primelist: return False if not start + 6660 in primelist: return False return True primelist = [] for i in xrange(1000, 10000): if isprime(i): primelist.append(i) def get_starts(primelist): results = [] for i in primelist: if check_for_sequence(primelist, i): results.append(i) return results def check_permutations(number): ''' Specialized function to see if a number, when increased by 3330 is a permutation of itself ''' num2 = number + 3330
import primes, itertools pcalc = 1000000 Pl = list(primes.sieve(pcalc)) P = set(Pl) # SERIOUS speedup isprime = lambda x: ((primes.isprime(x)) if (x >= pcalc) else (x in P)) to_1000 = list(itertools.takewhile(lambda x: x < 1000, Pl)) longest = 0 l_a = 0 l_b = 0 lim = 1000 for a in range(-lim + 1, lim): for b in to_1000: if not isprime(longest * longest + a * longest + b): continue for i in itertools.count(1): if not isprime(i * i + a * i + b): if i + 1 > longest: longest = i + 1 l_a = a l_b = b break if a % 100 == 0: print("a = {:>5}, longest so far: ({:>5}, {:>5}) -> {:>5}".format(a, l_a, l_b, longest)) print(l_a * l_b)
def nth(seq, n, default = None): import itertools return next(itertools.islice(seq, n - 1, None), default) import itertools import primes print(nth((x for x in itertools.count(1) if primes.isprime(x)), 10001))
# project euler 58 from primes import isprime diagnumber = 1 diagprimes = 0 diagtotal = 1 # includes center sidelength = 1 # each level += 2 while True: sidelength += 2 for i in range(4): diagnumber += sidelength - 1 if isprime(diagnumber): diagprimes += 1 diagtotal += 4 if diagprimes / float(diagtotal) < 0.1: print sidelength break
def check_prime(list): #ensure all the members of a list are prime if all(isprime(int(number)) for number in list): return True return False
for i in range(len(mylist)): sum+= mylist[-1-i]*10**i return sum ##for 2 digits contin=1 x=10 while contin: prime=[int(i) for i in str(primes.prime(x))] for i in range(len(prime)-1): for j in range(i+1): list2=list(prime) count=0 for k in range(10): list2[i+1]=list2[j]=k if primes.isprime(listToNum(list2)) and listToNum(list2)>999: count+=1 if count==Amount: print listToNum(prime) contin=0 x+=1 ##for 3 digits contin=1 x=25 while contin: prime=[int(i) for i in str(primes.prime(x))] for i in range(len(prime)-2): for j in range(i+2): for jj in range(j+1): list2=list(prime)
import primes import itertools import sys Pl = primes.precomp(1000000) i = 0 for p in Pl: i = i + 1 if p == 121313: print(p) s = str(p) for a in '012': nn = 10 fam = [] for b in '0123456789': rr = s.replace(a, b) if rr[0] == '0': break if rr == s and a != b: break if not primes.isprime(int(rr)): nn -= 1 if nn < 8: break else: fam.append(int(rr)) else: print(p) print(fam) sys.exit(0)
from primes import isprime from eulertools import is_pandigital import time start = time.time() record = 0 for number in xrange(1, 7654322): if is_pandigital(number): if isprime(number): record = number print record, time.time() - start
# Finds the primitive roots between 10 and 50 for primes between 1000 and 9999 import primes import sys p = input('Input your prime number: ') if (p < 1000 or p > 9999): print 'Only finds primitive roots for primes on interval [1000,9999]' sys.exit(0) if (primes.isprime(p) == 0): print '%i is NOT prime' % (p) sys.exit(0) primroots = [] ordp = range(1, p) for a in range(10, 51): orda = [] for i in range(1, p): orda.append(pow(a, i, p)) orda.sort() if orda == ordp: primroots.append(a) print 'The primitive roots of %i on the interval [10,50] are %s' % (p, primroots)
count=0 sum =0 tprimes=[] while count < 1000000000000000: primeList=[int(x) for x in str(primes.prime(n))] good=1 for x in range(1,len(primeList)): primeL=0 primeR=0 for i in range(len(primeList)-x): # print primeList primeL+=(10**(len(primeList)-x-i-1))*primeList[x+i] primeR+=(10**(len(primeList)-x-i-1))*primeList[i] # print primeR if not (primes.isprime(primeL) and primes.isprime(primeR)): good=0 break if good: tprimes.append(primes.prime(n)) count +=1 sum += primes.prime(n) print tprimes print sum n+=1 print tprimes print sum endTime=time.clock() print endTime-startTime
import primes l_numprimes=[] for a in range(-1000,1000): print a for b in range(-1000,1000): n = 0 while(True): if(primes.isprime(n**2+a*n+b)): n+=1 else: l_numprimes.append((n,a,b)) break l_numprimes.sort(reverse=True) print l_numprimes[0] """ First time through, brute force approach. Go from -1000 to 1000 in a and b. Check n while it's prime. Spun for awhile, printing a each time. Oh - had an infinite while loop. Added a break to the else. Much faster :) Changed sort to reverse = True. Got 71 consecutive primes, which is less than the 80 consecutive primes from -79 and 1601. Let's try it, I guess. (oh 1601 > 1000). Correct!
from primes import prime_list, isprime, prime_list2 from itertools import product primes = prime_list2(10000) composites = [i for i in xrange(3, 10000, 2) if not isprime(i)] square2 = [2 * i * i for i in xrange(1, 100)] sums = list(set(sum(c) for c in product(primes, square2) if sum(c) % 2)) sums.sort() print sums[:25] print [c for c in composites if not c in sums][:25] result = False
def isPrimeJoin(x,y): return (primes.isprime(x*10**(len(str(y)))+y) and primes.isprime(y*10**(len(str(x)))+x))
def test_is_five_prime(self): """Is five successfully determined to be prime?""" self.assertTrue(isprime(5))
import time import primes startTime=time.clock() n=0 MAX=10**6 noPrimes=0 x=0 while primes.prime(x)<MAX/2: sum=primes.prime(x) n=1 while sum<MAX: sum+=primes.prime(x+n) n+=1 if primes.isprime(sum): if n>noPrimes: noPrimes=n print noPrimes print sum x+=1 endTime=time.clock() print endTime-startTime
# project euler 41 from primes import isprime def ispandigital(n): return all([False for i in range(len(n)) if n.find(str(i+1)) == -1]) for i in range(7654321, 1234567 - 1, -2): if ispandigital(str(i)) and isprime(i): print i break
import primes import numpy as np range_a = range(-999,1000) range_b = range(-1000,1001) max_num_primes = 0 for a in range_a: for b in range_b: cur_max_num = 0 n = 0 while primes.isprime(n*n + a*n + b): cur_max_num += 1 n += 1 if cur_max_num > max_num_primes: max_num_primes = cur_max_num max_prod = a*b a_max = a b_max = b print(max_num_primes) print(a_max,b_max) print(a_max*b_max)
import primes i = 3 sum = 2 while i < 2e6: if (primes.isprime(i)): sum += i i += 2 print(sum)
import time import permute import primes startTime=time.clock() oneper=(9997-1000)/100 for i in range(1000,9997): if i%oneper==0:print i/oneper for j in range(1,(9999-i)/2+1): if primes.isprime(i) and primes.isprime(i+j) and primes.isprime(i+2*j): if permute.isPerm([int(ch) for ch in str(i)],[int(ch) for ch in str(i+j)]) and permute.isPerm([int(ch) for ch in str(i)],[int(ch) for ch in str(i+2*j)]): print i print i+j print i+2*j endTime=time.clock() print endTime-startTime
from itertools import count from primes import isprime n = 1 c = 0 for i in count(1, 2): n += i # skip bottom right (not actually diagonal) n += i c += isprime(n) i += 1 n += i c += isprime(n) n += i c += isprime(n) # side length is i + 1 # number of numbers is i * 2 + 1 # c / (i * 2 - 1) < .1 # so 10c < i * 2 - 1 if 10 * c < i * 2 + 1: print(i + 1) break
import primes import itertools import sys for i in reversed(range(1, 10)): for perm in itertools.permutations(reversed('123456789'[:i])): perm = ''.join(perm) if primes.isprime(int(perm)): print(perm) sys.exit(0)