def most_consec_prime_sum_upto(n): primes = primes_upto(n) temp_total = 0 for index, prime in enumerate(primes): if temp_total >= 10**6: primes = primes[:index + 1] break else: temp_total += prime for sequence_len in range(len(primes), 0, -2): for index in range(len(primes) - sequence_len): total = sum(primes[index:(index + sequence_len - 1)]) if test(total): return total
from primes import primes_upto from primes import test as is_prime from timeit import default_timer as timer def follows_property(n): n1 = n + 3330 n2 = n1 + 3330 if is_prime(n1) and is_prime(n2): digits_n = [int(x) for x in str(n)] digits_n1 = [int(x) for x in str(n1)] digits_n2 = [int(x) for x in str(n2)] if sorted(str(n)) == sorted(str(n1)) == sorted(str(n2)): return [n, n1, n2] else: return False start = timer() four_digit_primes = [x for x in primes_upto(10000) if len(str(x)) == 4] for prime in four_digit_primes: property_true = follows_property(prime) if property_true and prime != 1487: ans = '' for string in map(str, property_true): ans += string break elapsed_time = (timer() - start) * 1000 # s --> ms print("\nFound %s in %d ms.\n" % (ans, elapsed_time))
from primes import primes_upto, test as is_prime from itertools import count from timeit import default_timer as timer def goldbach_other_conject(n): # if an odd composite is prime + 2 * square for k in primes: if k > n: return False elif (((n - k)/2)**0.5).is_integer(): return True return False primes = primes_upto(500000) checking_primes = set(primes) start = timer() for x in range(9, 500000, 2): if x not in checking_primes and not goldbach_other_conject(x): ans = x break elapsed_time = (timer() - start) * 1000 # s --> ms print("\nFound %d in %d ms.\n" % (ans, elapsed_time))