Example #1
0
def main():
    limit = 1000

    primes = [2]
    while primes[-1] < limit:
        primes.append(get_next_prime(primes[-1]))
    seqb = primes[:-1]

    best = ((0, 0), 0)
    for b in seqb:
        if b == 2:
            seqa = [i for i in range(-limit + 1, limit) if i % 2 == 0]
        else:
            seqa = [i for i in range(-limit, limit + 1) if i % 2 == 1]
        for a in seqa:
            count = 0
            n = 0
            while True:
                if isprime(n ** 2 + a * n + b):
                    count += 1
                    if count > best[1]:
                        best = ((a, b), n)
                    n += 1
                else:
                    break

    print(best, best[0][0] * best[0][1])
Example #2
0
def main():
    width = 5
    primes = 3
    num = 13
    while primes / ((width // 2) * 4 + 1) > 0.10:
        for _ in range(3):
            if isprime(num):
                primes += 1
            num += width - 1
        width += 2
        num += width - 1

    print('Spiral side length:', width)
    print('Primes on diagonal:', primes)
Example #3
0
def main():
    counter = 0
    for n in range(2, 10 ** 6):
        if all([isprime(r) for r in rotate(n)]):
            counter += 1
            print(n, counter)
Example #4
0
def main():
    total = 0
    for n in range(10, 10**6):
        if all([isprime(p) for p in truncate(n)]):
            total += n
            print(n, total)
Example #5
0
def main():
    i = 3
    while isprime(i) or iscounter(i):
        i += 2
    print(i)
Example #6
0
def main():
    for l in range(9, 0, -1):
        for p in generate_pandigitals(l):
            if isprime(p):
                print(p)
                break
Example #7
0
def get_next_prime(num):
    while not isprime(num + 1):
        num += 1
    return num + 1