def findTruncatable(): primeCount = 0 primeSum = 0 # Guess at an upper bound primeList, primeSieve = slowPrimes(1000000) for p in primeList[4:]: digits = digitize(p) for i in xrange(1, len(digits)): num = undigitize(digits[i:]) if not primeSieve[num]: break num = undigitize(digits[:-1*i]) if not primeSieve[num]: break else: primeCount += 1 primeSum += p if primeCount == 11: break # Check that we reached 11 primes print(primeCount) return primeSum
from euler import primes, slowPrimes MAGIC = 4 # Compute primes below 100000 primeList, primeSieve = slowPrimes(1000000) # Returns a list of prime factors of n def primeD(n): plst = [] if primeSieve[n]: return [] for p in primeList: if not (n % p): plst.append(p) while n % p == 0: n /= p if n == 1: return plst if len(plst) > MAGIC: return [] def solve(): """ Solve problem 47. We will just check all numbers to see which ones have 4 distinct prime factors. """ n = 2 * 3 * 5 * 7 run = 0