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

时间:2016-06-24 17:31:59

标签: python

我刚开始学习如何编程,我正在尝试制作一个程序来找到第n个素数。我做到了。但是大数需要很长时间。有没有办法让它更快?这是我使用的代码(它非常基本):

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)

1 个答案:

答案 0 :(得分:0)

你可以通过而不是迭代加快速度 range(2,s)要找到一个因素,请尝试 range(2,int(math.sqrt(s))) 如果一个数字没有除以小于平方根的任何东西,那么它必须是素数。

记住 import math