예제 #1
0
파일: euler50.py 프로젝트: slott56/my-euler
def primesAsSumBad( upTo=1000000 ):
    primes= makePrimes(upTo)

    for t in primes:
        # Find a consecutive sequence of primes that sum to t.
        for start, sum in enumerate(primes):
            for p in range(start+1,len(primes)):
                sum += primes[p]
                if sum == t:
                    yield primes[start:p+1], t
                if sum > t: break
예제 #2
0
파일: euler50.py 프로젝트: slott56/my-euler
def primesAsSum(upTo=1000000):
    primes= makePrimes(upTo)
    pSet= set( primes )
    topPrime= primes[-1]

    for start, sum in enumerate( primes ):
        i= start
        while sum <= topPrime and i+1 != len(primes):
            i += 1
            sum += primes[i]
            if sum in pSet:
                yield primes[start:i+1], sum