Пример #1
0
def run():
    primes = primelist(1000000)[4:]

    truncPrimes = []
    for p in primes:
        if all(is_prime(x) for x in leftTrunc(p)) and all(is_prime(x) for x in rightTrunc(p)):
            truncPrimes.append(p)

        if len(truncPrimes) == 11:
            break

    return sum(truncPrimes)
Пример #2
0
def checkforAppendablePrimes(
        thisSet, depth,
        maxDepth):  #recursive function checking appendable primality
    for q in (q for q in primes if q > thisSet[-1]):
        qIsCandidate = True
        for x in thisSet:
            if not (is_prime(int(str(x) + str(q)))
                    and is_prime(int(str(q) + str(x)))):
                qIsCandidate = False

        if qIsCandidate:
            if depth == maxDepth - 1:
                return thisSet + [q]
            furtherTesting = checkforAppendablePrimes(thisSet + [q], depth + 1,
                                                      maxDepth)
            if furtherTesting != [0]:
                return furtherTesting
    return [0]
Пример #3
0
def run():
    N = 1000000
    primes = primelist(N)

    circPrimes = []
    for i in primes:
        if all(is_prime(x) for x in CircPerms(i)):
            circPrimes.append(i)

    return len(circPrimes)
Пример #4
0
def run():
    for i in range(10, 2, -1):
        panlist = []
        digits = list(x for x in range(1, i))
        perms = list(itertools.permutations(digits))
        for p in perms:
            temp = int(''.join(map(str, p)))
            if all([temp % 2, temp % 3]):
                panlist.append(temp)
        panlist = list(reversed(sorted(panlist)))
        for num in panlist:
            if is_prime(num):
                return num

    return -1
Пример #5
0
def run():
    primes = [x for x in primelist(10000) if numDigits(x) == 4]

    for p in primes:
        primePerms = list(set(sorted(x for x in Perms(p) if is_prime(x))))

        while len(primePerms) >= 3:
            diff = primePerms[1] - primePerms[0]
            for n in primePerms[2:]:
                if (n - primePerms[0]) / diff == 2:
                    out = ''.join([str(x) for x in primePerms[0:3]])
                    if len(out) == 12:
                        return int(out)
            primePerms.remove(primePerms[1])
    return -1
Пример #6
0
def run():

    cur = 1
    cornPrimes = 0
    corners = 1
    for i in range(1, 30000):
        for k in range(1, 4):
            cur += 2 * i
            if is_prime(cur):
                cornPrimes += 1
            corners += 1
        cur += 2 * i  #Don't bother checking the last one because it isnt prime
        corners += 1

        if cornPrimes / corners < 0.1:
            return i * 2 + 1