def solution(): limit = 10000 primes_list = set(seive_of_erat(limit)) n = 9 while n < limit: if n not in primes_list: primes_below = seive_of_erat(n) conjecture_false = True for p in primes_below: if sqrt((n - p) / 2).is_integer(): conjecture_false = False if conjecture_false: return n n += 2
def solution(): four_digit_primes = [p for p in seive_of_erat(10000) if p > 999] for i, prime1 in enumerate(four_digit_primes): if prime1 == 1487: continue for prime2 in four_digit_primes[i + 1:]: prime3 = 2 * prime2 - prime1 if prime3 in four_digit_primes: if set(str(prime1)) == set(str(prime2)) == set(str(prime3)): return str(prime1) + str(prime2) + str(prime3)
def solution(): list_of_primes = seive_of_erat(1000000) set_of_primes = set(list_of_primes) num_circ_primes = 0 for prime in list_of_primes: circ = True for rotation in rotations(prime): if rotation not in set_of_primes: circ = False if circ: num_circ_primes += 1 return num_circ_primes
def find_family(n, limit=100000): """Finds lowest prime in family of n primes, searches up to limit""" primes_list = seive_of_erat(limit) primes_set = set(primes_list) for p in primes_list: digits = get_digits(p) for d in digits: family = replace_digits(p, d) if family: size = len([m for m in family if m in primes_set]) if size + 1 == n: return p return False
def solution(): best_len = 0 best_pair = None primes_list = set(seive_of_erat(10000)) for a in range(-999, 1000): for b in range(-999, 1000): n = 0 while quadratic_function(n, a, b) in primes_list: n += 1 if n - 1 > best_len: best_len = n - 1 best_pair = (a, b) return best_pair, best_len, best_pair[0] * best_pair[1]
def solution(): limit = 1000000 primes_list = seive_of_erat(limit) primes_set = set(primes_list) best = (0, 0) for i, pstart in enumerate(primes_list): running_sum = pstart point = i while running_sum < limit and point < len(primes_list) - 1: point += 1 running_sum += primes_list[point] if running_sum in primes_set and point - i + 1 > best[1]: best = (running_sum, point - i + 1) return best[0]
def sum_n_primes(n): """Returns sum of all primes below n""" return sum(seive_of_erat(n))