예제 #1
0
파일: p50.py 프로젝트: hhjeong/ps
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
	
예제 #2
0
파일: p27sieve.py 프로젝트: hhjeong/ps
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
"""