Python 加速素数生成?

Python 加速素数生成?,python,Python,这个程序生成素数。它工作得很好,但我想加快速度,因为生成所有素数需要相当长的时间 #!/usr/bin/python #intgr = int(raw_input ("Please enter your number: ")) intgr = 50000 for i in range (2, intgr+1): j = 2 while j<i: if (i%j) == 0: break j += 1 if

这个程序生成素数。它工作得很好,但我想加快速度,因为生成所有素数需要相当长的时间

#!/usr/bin/python

#intgr = int(raw_input ("Please enter your number: "))
intgr = 50000

for i in range (2, intgr+1):
    j = 2
    while j<i:
        if (i%j) == 0:
            break
        j += 1
    if j == i:
        #print "prime", i
        pass #print "prime", i
print "done"

现在运行大约需要15秒,我想缩短这段时间。

生成素数本身就很慢。您实现的算法称为试算法,是生成素数最慢的方法之一。还有其他更快的算法,例如Eratosthenes筛。我建议你对更好的算法做更多的研究。

首先,我假设python2,因为最后的print语句只在python2中有效,我会使用xrange而不是range。你应该查找生成素数的算法,例如,Eratostheness的筛子应该是while j,这比使用筛上筛子慢得多。根据维基百科,这不是最快的,而是最简单的。我真的不确定这个答案需要更多的评论,顺便说一句。这不是一个评论吗?