コード例 #1
0
ファイル: problem37.py プロジェクト: WalrusCow/euler
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
コード例 #2
0
ファイル: problem47.py プロジェクト: WalrusCow/euler
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