import PrimeNumber limit = 10**6 primes = PrimeNumber.get_primes( limit ) sieves = PrimeNumber.sieve( limit ) best_length = 0 best_prime = 0 for i in xrange( len(primes) ): cand = 0 for j in xrange( i, len(primes) ): cand += primes[j] if cand >= limit: break if sieves[ cand ]: length = j - i + 1 if best_prime == 0 or best_length < length: best_length = length best_prime = cand print best_prime, 'length is', best_length
import PrimeNumber, time start = time.time() isprime = PrimeNumber.sieve( 1000**2 + 1000*1000 + 1000 ) def num_cycle( a, b, n = 0 ): while True: if not isprime[ n**2 + a*n + b ]: break n += 1 return n max_n = 0 for a in xrange(-1000,1000): for b in xrange(-1000,1000): n = num_cycle( a, b ) if max_n < n: max_n = n print "update:", a*b, max_n print time.time() - start """ Sieve version : 4sec """