[英]How to find the nth prime number faster?
I just started to learn how to program and I was trying to make a program to find the nth prime number. 我刚开始学习如何编程,并且试图制作一个程序来查找第n个质数。 And I did it.
而我做到了。 But it takes a very long time for large number.
但是要花大量的时间要花很长时间。 Is there a way to make it faster?
有没有办法使其更快? Here's the code I used(it's really basic):
这是我使用的代码(这是非常基本的):
def prime_finder(nth1):
s = 1
n = 0
while n < nth1:
s += 1
for x in range(2,s):
if s % x == 0:
break
else:
n += 1
return s
print prime_finder(31337)
You could speed it up by instead of iterating range(2,s)
to find a factor, try range(2,int(math.sqrt(s)))
If a number doesn't divide anything less than its square root, it must be prime. 您可以加快迭代速度,而不是迭代
range(2,s)
来找到一个因数,请尝试range(2,int(math.sqrt(s)))
如果一个数字的除法没有小于平方根,必须是素数。
Remember to import math
记住要
import math
as well. 也一样
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.