def pandigitals(): primes = list(generate_primes(17)) return ( int(''.join(pandigital)) for pandigital in permutations('0123456789') # d2d3d4 is divisible by 2 iff d4 is divisible by 2 if int(pandigital[3]) % 2 == 0 # d4d5d6 is divisible by 5 iff d6 is divisible by 5 (= 0 or 5) # d6d7d8 is divisible by 11 -> d6 can't be 0 (011, 022, ...) if int(pandigital[5]) == 5 if are_digits_divisible(pandigital, primes))
def consecutive_primes(): primes_list = list(generate_primes(1000000)) primes_set = set(primes_list) for i in range(10): prime_sum = 0 for j in range(i, len(primes_list)): prime_sum += primes_list[j] if prime_sum in primes_set: yield j - i + 1, prime_sum
def solve(): result = 1 primes = list(generate_primes(20)) i = 0 while result * primes[i] < 1000000: result *= primes[i] i += 1 return result
def pandigitals(): primes = list(generate_primes(17)) return (int(''.join(pandigital)) for pandigital in permutations('0123456789') # d2d3d4 is divisible by 2 iff d4 is divisible by 2 if int(pandigital[3]) % 2 == 0 # d4d5d6 is divisible by 5 iff d6 is divisible by 5 (= 0 or 5) # d6d7d8 is divisible by 11 -> d6 can't be 0 (011, 022, ...) if int(pandigital[5]) == 5 if are_digits_divisible(pandigital, primes))
def solve(): limit = 10000 primes = set(generate_primes(limit)) return next(int(''.join(map(str, [a, b, c(a, b)]))) for a in primes.intersection(range(1001, limit, 2)) for b in primes.intersection(range(a + 2, limit, 2)) if a != 1487 if c(a, b) in primes if sorted(str(a)) == sorted(str(b)) == sorted(str(c(a, b))))
def solve(): primes = list(generate_primes(30)) i = 0 n = 1 limit = 15499 / 94744 while resilience(n * primes[i]) >= limit: n *= primes[i] i += 1 for c in (n for n in range(2, primes[i - 1]) if n not in primes): if resilience(n * c) < limit: return n * c
def solve(): primes = math_helper.generate_primes(7500000) heap = [] for value in primes: heappush(heap, value) n = 1 for power in range(500500): head = heappop(heap) n *= head n %= 500500507 heappush(heap, head ** 2) return n
def truncatables(): primes = set(generate_primes(1000000)) return (n for n in primes if n > 10 if is_truncatable(n, primes))
def solve(): primes = set(generate_primes(100000)) r = range(-999, 1000, 2) _, a, b = max((count_primes(a, b, primes), a, b) for a in r for b in r) return a * b
def solve(): primes = set(generate_primes(1000000)) return len(list(generate_circulars(primes)))
def solve(): primes = set(generate_primes(1000)) return next(n for n in count() if has_four_factors(primes, n))
def solve(): return sum(generate_primes(2000000))
def solve(): return list(generate_primes(200000))[10000]