from lib.eratosthenes import sieve target = 2000000 print(sum(sieve(target)))
bound = 1000 from lib.eratosthenes import sieve primes = set(sieve(100000)) is_prime = lambda x: x in primes def quadratic(n, a, b): return n * n + a * n + b def test_quadratic(a, b): n = 0 while True: if is_prime(abs(quadratic(n, a, b))): n += 1 else: break return n primes = set(filter(is_prime, range(0, bound))) max_primes = 0 max_primes_mul = 0 for i in primes: for j in primes: counter = max(test_quadratic(i, j), test_quadratic(-i, -j), test_quadratic(-i, j), test_quadratic(i, -j)) if counter > max_primes: max_primes = counter max_primes_mul = i * j print( max_primes_mul ) # NOTE, test this with a - sign since one of i or j might be negative, and makes the code easier
from lib.eratosthenes import sieve primes_list = sieve(999999)[5781:] primes = set(primes_list) is_prime = lambda x: x in primes def replace(string, replacement, *pos): new, i = '', 0 for p in pos: new += string[i:p] + replacement i = p + 1 return new + string[i:] def generate_family(n, digit): return [ replace(n, str(x), *[x for x in range(len(n)) if n[x] == digit]) for x in (range(10) if n[0] != digit else range(1, 10)) ] def is_8family(family): return sum(1 for x in family if is_prime(int(x))) == 8 def search(): for dig in '012': for number in (d for d in primes_list if dig in str(d)[:-1]): if is_8family(generate_family(str(number), dig)): return number
from lib.eratosthenes import sieve primes = set(sieve(20000000)) def is_prime(n): return n in primes def verify_left(n): if len(n) == 1: return True if not is_prime(int(n)): return False if verify_left(n[1:]): return True return False def verify_right(n): if len(n) == 1: return True if is_prime(int(n)): return False if verify_right(n[:-1]): return True return False def verify(n): if not is_prime(n): return False ns = str(n)