我已经浏览了各种关于此主题的旧帖子,他们都以某种方式让我感到困惑。所以我会从头开始。PYTHON:查找第n个素数
问题是项目欧拉#7,我是一个相当新的程序员试图解决我的问题。 #7如下。
通过列出前6个素数:2,3,5,7,11和13,我们可以看到第6个素数是13. 第10,001个素数是多少?
我的问题如下。我清楚了解素数以及他们的工作原理。须藤代码我会写这个问题是这样的:
For n in range(3,n) #where n is some very large value.
if n%i ==0 for i in range(2,n-1)
return False
if n%i == 0 for i == n
return True
但我觉得我的知识的缺乏,当涉及到Python是阻碍我在寻找我想要的东西。
在我看到的大多数其他解决方案中,它们将n限制在125000之类,并且我真的不知道它们是从哪个数字得出的。
另一个问题是我不知道如何通过范围正确搜索并创建一个满足该关系的值列表,然后我可以检查列表中的最大值。
对我来说最有意义的事情是将每个新素数基本追加到列表中,然后取最大值,但我相信有更好更快的方法来做到这一点。如果你要回答,请包括一个健康的解释剂量,而不要跳入Python技术可能性,请记住,我是编程初学者。
我知道人们处理这类问题的典型方式是促使提问者找到正确的答案,我不想那样做。我希望有人向我展示一个解决方案,然后逐步解释代码的每个部分的作用,以便我不仅可以学习如何解决问题,还可以更好地理解python的工作原理。
谢谢。
有,你不妨来看看在'gmpy2'模块,有一个'next_prime()'方法,你可以用它来获得的第n个素数。或者你可以参考这个答案[最快的方式到列表,所有素数 - 下 - n](http://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below- n) – Pavan
@Pavan我认为他不需要使用适当的包来处理主要的数据包 –
@PhungDuyPhong添加了一个链接,其中存在不同的算法来执行相同的操作,并与其他人进行比较。 – Pavan