|
发表于 2016-7-11 01:50:10
|
显示全部楼层
考虑 n=0时多项式结果为质数可知c是1000以内的质数
考虑 n=1时,可得1+b+c为质数,因此b>-c,而且b应为奇数(排除质数为2的情况,因为当n=2时多项式因为正数)
- def primes_sieve(limit):
- limitn,not_prime,primes = limit+1,set(),list()
- for i in range(2, limitn):
- if i in not_prime:
- continue
- for f in range(i*2, limitn, i):
- not_prime.add(f)
- primes.append(i)
- return primes
-
-
- import time
- t,maxi,prime_l = time.time(),0,list(reversed(primes_sieve(1000)))
- prime_s = set(primes_sieve(10000))
- for c in prime_l:
- for b in range(-c+2,1000,2):
- for i in range(1,100):
- if (i**2 + b*i + c) not in prime_s:
- if i > maxi:
- maxi,result = i,b*c
- break
-
- print('time:',time.time()-t,'result:',result)
复制代码
在我的机器上(i5-3210M):
time: 0.23101305961608887 result: -59231
|
评分
-
查看全部评分
|