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)
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]
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)
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
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
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