def is_truncatable_prime(n):
    if n in [2, 3, 5, 7]:
        return False
    numberlist = [int(str(n)[i:]) for i in range(1, len(str(n)))
                  ] + [int(str(n)[:j]) for j in range(1, len(str(n)))]
    for n in numberlist:
        if not is_prime(n):
            return False
    return True
def generate_sum_of_primes(upperbound):
    primes_below = list(generate_prime_below(upperbound))
    primes_below = primes_below[:first_true(
        count(0), pred=lambda i: sum(primes_below[i:i + 13]) > upperbound) +
                                13]
    len_primes_below = len(primes_below)
    for i in range(len_primes_below - 1):  # i: start_index
        end_index_start = i + 15 if i != 0 else i + 14
        for j in range(end_index_start, len_primes_below, 2):
            sum_primes = sum(primes_below[i:j])
            if sum_primes < upperbound and is_prime(sum_primes):
                yield (sum_primes, j - i)
Example #3
0
from ProjectEulerCommons.Base import *
from ProjectEulerCommons.PrimeNumbers import generate_prime_below, is_prime


def circulations(target_list):
    for i in range(len(target_list)):
        yield target_list[i:] + target_list[:i]


Answer(
    quantify(
        generate_prime_below(1000000),
        lambda prime: first_true(islice(
            circulations(list(map(int, str(prime)))), 1, None),
                                 pred=lambda digitlist: not is_prime(
                                     joined_int(digitlist))) == False))
"""
------------------------------------------------
   ProjectEuler.Problem.035.py
   The Answer is: 55
   Time Elasped: 12.629229307174683sec
------------------------------------------------
"""
def count_produced_prime_numbers(a, b):
    return first_true_index(generate_formula_value(a, b),
                            pred=lambda enum: not is_prime(enum[1]))
from ProjectEulerCommons.Base import *
from ProjectEulerCommons.PrimeNumbers import is_prime

Answer(
    nth((''.join(map(str, [n, n + d, n + 2 * d]))
         for n in range(1487 + 2, 10000, 2)
         for d in range(2, int((10000 - n) * 0.5), 2)
         if is_prime(n) and is_prime(n + d) and is_prime(n + 2 * d)
         and sorted(str(n)) == sorted(str(n + d)) == sorted(str(n + 2 * d))),
        0))
"""
------------------------------------------------
   ProjectEuler.Problem.049.py
   The Answer is: 296962999629
   Time Elasped: 8.519287586212158sec
------------------------------------------------
"""
from ProjectEulerCommons.Base import *
from ProjectEulerCommons.Factors import factorize
from ProjectEulerCommons.PrimeNumbers import is_prime

Answer(max([x for x in factorize(600851475143) if is_prime(x)]))
"""
------------------------------------------------
   ProjectEuler.Problem.003.py
   The Answer is: 6857
   Time Elasped: 0.23537230491638184sec
------------------------------------------------
"""