概述
我试图用埃拉霍斯特内斯的筛子找到第n个质数。
是的,我看到了类似的帖子,但是我对这段代码有一个问题。
一旦找到第n个素数,我就停止算法。我写的是:def nth_prime(n):
limit = 10**2
pn = 1 #keeps track of how many prime numbers we have found
sieve = range(3, limit, 2)
top = len(sieve)
for si in sieve:
if si:
pn += 1
print pn, si #used to check while coding
if pn == n:
return si #loop breaks when the nth prime is found
else:
bottom = (si*si - 3)/2
if bottom >= top:
break
sieve[bottom::si] = [0] * -((bottom-top)//si)
print nth_prime(11)
但它不起作用。至少不是我想的那样。如果我添加回流过滤器(无,筛子)[n-2]效果良好。但我希望它在第n个素数停止计算。
以下是输出:
^{pr2}$
我希望它能持续到:...
11 31
如果函数能够正确计算所有筛到极限的筛分,为什么输出会这样?在
最后
以上就是拼搏铅笔为你收集整理的python求第n个质数_找到第n个质数:麻木的全部内容,希望文章能够帮你解决python求第n个质数_找到第n个质数:麻木所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复