def q37(): from My_functions import primes_up_to_n_using_sieve from My_functions import truncatable_possibilities from My_functions import is_prime x = filter( lambda x: int(str(x)[::-1]) % 2 != 0, primes_up_to_n_using_sieve(1000000)) + primes_up_to_n_using_sieve(100) x = sorted(list(set(x)))[4:] ans = [] for i in x: if all(is_prime(j) for j in truncatable_possibilities(i)): ans.append(i) return sum(ans), ans
def cycle_of(n): if is_terminating(n): return "1/" + str(n) + " is not a recurring decimal" else: if n in primes_up_to_n_using_sieve(n + 1): return prime_cycle(n) else: pass
def q41(): from My_functions import is_pandigital_from_digits from sieve import primes_up_to_n_using_sieve n = primes_up_to_n_using_sieve(8000000) ns = [] for i in n: if is_pandigital_from_digits(i): ns.append(i) return max(ns)
def recurring(n): if n < 8: return 7 for d in primes_up_to_n_using_sieve(n)[::-1]: period = 1 while __builtin__.pow(10, period, d) != 1: period += 1 if d - 1 == period: break return d
def q35(): from sieve import primes_up_to_n_using_sieve from My_functions import rotations n = set(primes_up_to_n_using_sieve(1000000)) ans = set() for i in n: j = rotations(str(i)) if j.issubset(n): ans.update(j) n.discard(j) return len(ans)
def q51(): from sieve import primes_up_to_n_using_sieve from My_functions import eight_prime_family sieve = primes_up_to_n_using_sieve(1000000) for prime in sieve: if prime > 100000: s = str(prime) lastDigit = s[5:6] if (s.count('0') == 3 and eight_prime_family(s, '0') \ or s.count('1') == 3 and eight_prime_family(s, '1') \ or s.count('2') == 3 and eight_prime_family(s, '2')): answer = s return answer
def q50(): from sieve import primes_up_to_n_using_sieve from My_functions import is_prime prime_sieve = primes_up_to_n_using_sieve(1000000) list_of_primes = [] number = 0 while True: for i in prime_sieve[3:]: number += i if is_prime(number): list_of_primes.append(number) if number > 1000000: break break return list_of_primes[-1]
def q49(): from itertools import permutations from sieve import primes_up_to_n_using_sieve def create(b): for i in xrange(len(b)): for j in xrange(i + 1, len(b)): difference = b[j] - b[i] if b[j] + difference in b: return str(b[i]) + str(b[j]) + str(b[j] + difference) return False primes = primes_up_to_n_using_sieve(10000) primes = [x for x in primes if x > 1487] for i in primes: p = permutations(str(i)) a = [int(''.join(x)) for x in p] a = list(set([x for x in a if x in primes])) a.sort() if len(a) >= 3: if create(a): return create(a)
def sum_of_primes(): prime_list = primes_up_to_n_using_sieve(2000000) result = 0 for i in prime_list: result += i return result
def q7(): primes = primes_up_to_n_using_sieve(1000000) return primes[10000]