Esempio n. 1
0
File: p27.py Progetto: scdev0/euler
def quadratic_primes():
    '''Find the product of the coefficients, a and b, for the quadratic expression
    n^2 + an + b that produces the maximum number of primes for consecutive values
    of n, starting with n=0.'''
    primes = [
        2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67,
        71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139,
        149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223,
        227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293,
        307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383,
        389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463,
        467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569,
        571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647,
        653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743,
        751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839,
        853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941,
        947, 953, 967, 971, 977, 983, 991, 997
    ]
    max_count = 0
    result = (0, 0)
    for b in primes:
        for a in range(-999, 1000):
            n = 0
            count = 0
            while p3.is_prime(n**2 + a * n + b):
                count += 1
                n += 1
            if max_count < count:
                max_count = count
                result = (a, b)
    return result[0] * result[1]
Esempio n. 2
0
def primes(max_val):
    p = [2]
    i = 2
    while p[-1]<max_val:
        i+=1
        if is_prime(i):
            p.append(i)
    return p[:-1]
Esempio n. 3
0
def nth_prime(n):
    p = []
    i = 0
    while len(p)<n:
        i+=1
        if is_prime(i):
            p.append(i)
    return p[-1]
Esempio n. 4
0
def sum_prime(num):
    '''Return sum of primes < num
    >>> sum_prime(2)
    2
    >>> sum_prime(10)
    17
    '''
    total = 0
    for i in range(2, num + 1):
        if p3.is_prime(i):
            total += i
    return total
Esempio n. 5
0
def primes(num):
    '''Return a list of primes < num
    >>> primes(2)
    []
    >>> primes(3)
    [2]
    >>> primes(10)
    [2, 3, 5, 7]
    '''
    l = []
    for i in range(2, num):
        if p3.is_prime(i):
            l.append(i)
    return l
Esempio n. 6
0
File: p7.py Progetto: scdev0/euler
def ten_thousand_first_prime():
    '''Return the 10001st prime'''
    count = 1  # 2 is the only even prime, start from 3 after and increment by 2
    start = 3
    end = 9999
    while True:
        for i in range(start, end, 2):
            if p3.is_prime(i):
                count += 1
            if count == 10001:
                return i
        # set the next interval
        start = end
        end = end + 10000
Esempio n. 7
0
def circular_primes(num):
    '''Return the number of circular primes < num
    >>> circular_primes(2)
    0
    >>> circular_primes(3)
    1
    >>> circular_primes(100)
    13
    '''
    l = primes(num)
    count = 0
    for prime in l:
        rs = rotations(prime)
        for rotation in rs:
            if not p3.is_prime(rotation):
                break
        else:
            count += 1
    return count