Esempio n. 1
0
from lib.eratosthenes import sieve
target = 2000000
print(sum(sieve(target)))
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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)