我刚开始学习如何编程,我正在尝试制作一个程序来找到第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)
答案 0 :(得分:0)
你可以通过而不是迭代加快速度
range(2,s)
要找到一个因素,请尝试
range(2,int(math.sqrt(s)))
如果一个数字没有除以小于平方根的任何东西,那么它必须是素数。
记住
import math
。