Beispiel #1
0
def test_primes():
    primes_list = itertools.takewhile(lambda x: x <= 100, math_ext.primes())
    primes_list = list(primes_list)
    assert primes_list == [
        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
    ]
def test_has_number_of_replaced_primes():
    assert problem.has_number_of_replaced_primes(121313, 8)

    primes = math_ext.primes()
    p = next(primes)
    while p < 56003:
        assert not problem.has_number_of_replaced_primes(p, 7)
        p = next(primes)
    assert problem.has_number_of_replaced_primes(56003, 7)
def solve():
    prime_pair_sets = []
    for new_p in math_ext.primes():
        for prime_pair_set in prime_pair_sets:
            if is_prime_pair_set(new_p, prime_pair_set):
                new_prime_pair_set = (new_p, ) + prime_pair_set
                if len(new_prime_pair_set) == 5:
                    return sum(new_prime_pair_set)
                prime_pair_sets.append(new_prime_pair_set)
        prime_pair_sets.append((new_p, ))
Beispiel #4
0
def prime_decompose(x):
    if x == 1:
        return [1]
    factors = []
    for p in math_ext.primes():
        if p > x:
            break
        while x % p == 0:
            factors.append(p)
            x /= p
    return factors
def get_max_consecutive_prime_sum(threashold):
    primes = list(slice_seq(math_ext.primes(), 0, threashold))
    start, end = 0, 1
    for i in range(len(primes)):
        for j in range(i + end - start, len(primes)):
            p = sum(primes[i:j])
            if p >= threashold:
                break
            if math_ext.is_prime(p):
                start, end = i, j
    return sum(primes[start:end])
def solve():
    primes = itertools.takewhile(lambda x: x < 1000000, math_ext.primes())
    circular_primes = []
    for p in primes:
        circular_numbers = get_circular_numbers(p)
        if any([n % 2 == 0 for n in circular_numbers]):
            continue
        if min(circular_numbers) < p:
            continue
        if is_circular_prime(p):
            circular_primes += get_circular_numbers(p)
    return len(circular_primes)
Beispiel #7
0
def solve():
    return sum(itertools.takewhile(lambda x: x <= 2000000, primes()))
def get_4_digit_primes():
    primes = math_ext.primes()
    primes = itertools.dropwhile(lambda n: n < 1000, primes)
    primes = itertools.takewhile(lambda n: n < 10000, primes)
    return primes
Beispiel #9
0
def solve():
    for p in math_ext.primes():
        if has_number_of_replaced_primes(p, 8):
            return p
Beispiel #10
0
def get_truncable_primes():
    return filter(is_truncatable_prime, math_ext.primes())
Beispiel #11
0
def solve():
    index = 10001
    index_th_prime_iter = itertools.islice(primes(), index - 1, index)
    index_th_prime = list(index_th_prime_iter)[0]
    return index_th_prime