Beispiel #1
0
def q37():
    from My_functions import primes_up_to_n_using_sieve
    from My_functions import truncatable_possibilities
    from My_functions import is_prime
    x = filter(
        lambda x: int(str(x)[::-1]) % 2 != 0,
        primes_up_to_n_using_sieve(1000000)) + primes_up_to_n_using_sieve(100)
    x = sorted(list(set(x)))[4:]
    ans = []
    for i in x:
        if all(is_prime(j) for j in truncatable_possibilities(i)):
            ans.append(i)

    return sum(ans), ans
def cycle_of(n):
    if is_terminating(n):
        return "1/" + str(n) + " is not a recurring decimal"
    else:
        if n in primes_up_to_n_using_sieve(n + 1):
            return prime_cycle(n)
        else:
            pass
Beispiel #3
0
def q41():
    from My_functions import is_pandigital_from_digits
    from sieve import primes_up_to_n_using_sieve
    n = primes_up_to_n_using_sieve(8000000)
    ns = []
    for i in n:
        if is_pandigital_from_digits(i):
            ns.append(i)

    return max(ns)
def recurring(n):
    if n < 8:
        return 7
    for d in primes_up_to_n_using_sieve(n)[::-1]:
        period = 1
        while __builtin__.pow(10, period, d) != 1:
            period += 1
        if d - 1 == period:
            break
    return d
Beispiel #5
0
def q35():
    from sieve import primes_up_to_n_using_sieve
    from My_functions import rotations

    n = set(primes_up_to_n_using_sieve(1000000))
    ans = set()
    for i in n:
        j = rotations(str(i))
        if j.issubset(n):
            ans.update(j)
            n.discard(j)
    return len(ans)
Beispiel #6
0
def q51():
    from sieve import primes_up_to_n_using_sieve
    from My_functions import eight_prime_family

    sieve = primes_up_to_n_using_sieve(1000000)
    for prime in sieve:
        if prime > 100000:
            s = str(prime)
            lastDigit = s[5:6]
            if (s.count('0') == 3 and eight_prime_family(s, '0') \
             or s.count('1') == 3 and eight_prime_family(s, '1') \
             or s.count('2') == 3 and eight_prime_family(s, '2')):
                answer = s
    return answer
Beispiel #7
0
def q50():
    from sieve import primes_up_to_n_using_sieve
    from My_functions import is_prime

    prime_sieve = primes_up_to_n_using_sieve(1000000)
    list_of_primes = []
    number = 0

    while True:
        for i in prime_sieve[3:]:
            number += i
            if is_prime(number):
                list_of_primes.append(number)
            if number > 1000000:
                break
        break

    return list_of_primes[-1]
Beispiel #8
0
def q49():
    from itertools import permutations
    from sieve import primes_up_to_n_using_sieve

    def create(b):
        for i in xrange(len(b)):
            for j in xrange(i + 1, len(b)):
                difference = b[j] - b[i]
                if b[j] + difference in b:
                    return str(b[i]) + str(b[j]) + str(b[j] + difference)
        return False

    primes = primes_up_to_n_using_sieve(10000)
    primes = [x for x in primes if x > 1487]

    for i in primes:
        p = permutations(str(i))
        a = [int(''.join(x)) for x in p]
        a = list(set([x for x in a if x in primes]))
        a.sort()
        if len(a) >= 3:
            if create(a):
                return create(a)
def sum_of_primes():
    prime_list = primes_up_to_n_using_sieve(2000000)
    result = 0
    for i in prime_list:
        result += i
    return result
Beispiel #10
0
def q7():
    primes = primes_up_to_n_using_sieve(1000000)
    return primes[10000]