|  | 
 
 发表于 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
 
 | 
 评分
查看全部评分
 |