Beispiel #1
0
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))
Beispiel #2
0
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
Beispiel #3
0
def solve():
    result = 1
    primes = list(generate_primes(20))

    i = 0
    while result * primes[i] < 1000000:
        result *= primes[i]
        i += 1

    return result
Beispiel #4
0
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))
Beispiel #5
0
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))))
Beispiel #6
0
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
Beispiel #7
0
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
Beispiel #8
0
def truncatables():
    primes = set(generate_primes(1000000))
    return (n for n in primes if n > 10 if is_truncatable(n, primes))
Beispiel #9
0
def truncatables():
    primes = set(generate_primes(1000000))
    return (n for n in primes
            if n > 10
            if is_truncatable(n, primes))
Beispiel #10
0
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
Beispiel #11
0
def solve():
    primes = set(generate_primes(1000000))
    return len(list(generate_circulars(primes)))
Beispiel #12
0
def solve():
    primes = set(generate_primes(1000))
    return next(n for n in count() if has_four_factors(primes, n))
Beispiel #13
0
def solve():
    return sum(generate_primes(2000000))
Beispiel #14
0
def solve():
    return list(generate_primes(200000))[10000]