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