简体   繁体   English

如何更快地找到第n个质数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM