通过列出前六个素数:2,3,5,7,11和13,我们可以看到第6个素数是13。
10 001号素数是多少?
我试过这样的话:
def isprime(num):
i=2
import math
while (int(math.sqrt(num))+1)>=i:
if num%i==0:
return False
i = i+1
return True
def findprime(n):
prime = 1
for i in range(3,n):
if isprime(i):
prime = prime+1
if prime == 10001:
return i
我用一个大整数调用findprime()
。所以它循环遍历范围内的所有整数,并且需要花费大量时间来生成输出,有时我的python shell因为输入很大而挂起。有没有聪明的方法来做到这一点?