from primes import primes_sieve, primes_sieve_gen limit = 1000000 primes = [x for x in primes_sieve_gen(10000)] is_prime = primes_sieve(1000000) squares = [i * i for i in range(1, 100)] first = [i for i in range(2, limit) if not i % 2 == 0 and not is_prime[i]] second = [False] * limit for i in first: second[i] = True for i in primes: for j in squares: second[i + 2 * j] = False print second.index(True)
from primes import primes_sieve, primes_sieve_gen import itertools def has_at_least_3_same_digits(number): d = {} for letter in str(number): if letter not in d.keys(): d[letter] = 1 else: d[letter] += 1 return max(d.itervalues()) >= 3 limit = 1000000 primes = [x for x in primes_sieve_gen(limit)] primes = primes[primes.index(56003) - 1:] is_prime = primes_sieve(limit) replacement_digits = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0) def calculate(): found = False already_checked = [] counter = 10 while not found: prime = primes.pop(0) if not has_at_least_3_same_digits(prime): continue print prime for n_of_digits in xrange(3, len(str(prime)), 3):
def __init__(self): self.limit = 10000 self.primes_table = [x for x in primes_sieve_gen(self.limit)] self.result = 5 * self.limit self.pairs = {} self.primes = []
from primes import primes_sieve, primes_sieve_gen limit = 1000000 prime_list = [i for i in primes_sieve_gen(1000000)] is_prime = primes_sieve(limit) def rotate(n, l): return n[l:] + n[:l] def get_rotations(n): for r in range(len(n)): yield rotate(n, r) numbers = ['2', '4', '5', '6', '8'] result = set() for i in prime_list: if any(l in numbers for l in str(i)) and i != 2 and i != 5: continue if all([is_prime[int(x)] for x in list(map(''.join, get_rotations(str(i))))]): for a in list(map(''.join, get_rotations(str(i)))): result.add(int(a)) print result, len(result)