Exemplo n.º 1
0
def quadratic_primes(number):
    prime = c.prime_list_generator(number, False)

    max_len = 0
    for a in range(3, prime[-1], 2):
        for b in prime:
            max_len = max_quad_prime_series(max_len, a, b)
            max_len = max_quad_prime_series(max_len, a, -b)
            max_len = max_quad_prime_series(max_len, -a, b)
            max_len = max_quad_prime_series(max_len, -a, -b)
Exemplo n.º 2
0
def consequtive_prime_sum(max=100):
    import sys
    sys.path.append('../')
    import common as c

    primes_bool = c.prime_list_generator(
        max)  # [False, False, True, True, False, ...]
    primes = c.prime_list_generator(max, False)  # [2, 3, 5, 7, 11, ...]

    start, len_max, max_sum = 0, 0, 0  # where the results are stored
    for i in range(len(primes)):
        sum = primes[i]  # initialize sum
        for j in range(i + 1, len(primes)):
            sum += primes[j]
            if (sum < max):  # if sum is out of range, skip the larger primes
                if (primes_bool[sum]):  # if 2nd conditional also met...
                    l = j - i + 1  # calculate length of the series
                    if (l > len_max):
                        len_max, start, max_sum = l, primes[i], sum
            else:
                break
    print("start = ", start, " :: ", "max = ", len_max, " :: ", "sum = ",
          max_sum)
Exemplo n.º 3
0
def truncatable_primes(max, start=23):
    import sys
    sys.path.append('../')
    import common as c
    primes = c.prime_list_generator(max)

    sum, my_list = 0, []
    for i in range(start, max):
        if primes[i]:
            # initialize left with the number,  right with 0, and multiplier of 1
            (left, right, mul, ok) = (i, 0, 1, True)
            while (ok and left > 0):
                right += (left % 10) * mul      # grow the right number
                ok = primes[right] and primes[left]  # check for primeness for early exit
                mul *= 10                       # increase multiplier
                left = int(left / 10)           # shrink the left number
            if ok:                              # is it a truncatable prime?
                sum += i
                my_list.append(i)

    print("sum = ", sum, "len = ", len(my_list), my_list)
Exemplo n.º 4
0
def prime_permutations(digits=4):
    import sys
    sys.path.append('../')
    import common as c

    max = 10**digits
    primes_bool = c.prime_list_generator(max)
    primes = [
        x for x in range((10**(digits - 1) - 1), 10**digits) if primes_bool[x]
    ]

    for i in range(len(primes)):
        for j in range(i + 1, len(primes)):
            next_j = 2 * primes[j] - primes[
                i]  # C = B + diff ; where diff = B - A
            if (next_j > max): break
            if (primes_bool[next_j]):  # check for condition #3, (and 2)
                i_list = sorted(str(primes[i]))
                j_list = sorted(str(primes[j]))
                n_list = sorted(str(next_j))

                if ((i_list == j_list) and (j_list == n_list)):  # condition #1
                    print("diff = ", "{:7d}".format(primes[j] - primes[i]),
                          " :: ", primes[i], primes[j], next_j)
Exemplo n.º 5
0
'''
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all prime numbers below 2,000,000
'''
import time  # get a sense of the time taken
t = time.time()  # get time just before the main routine

########## the main routine #############

import sys
sys.path.append('../')
import common as c

number = 2000000
print("sum of primes = ", sum(c.prime_list_generator(number, False)))

########## end of main routine ###########

t = time.time() - t  # and now, after the routine
print("time       = {:7.5f} s\t{:7.5f} ms\t{:7.3f} µs".format(
    t, t * 1000, t * 1000000))