素数就是不能再进行等分的整数。比如:7,11。而 9 不是素数,因为它可以平分为 3 等份。一般认为最小的素数是 2,接着是 3,5,…,请问,第 100002(十万零二)个素数是多少?
用以前求素数的方法添加链接描述
如
n = 10000000
l1 = [True for i in range(n+1)] #生成一个全是True的的数组
for i in range(2,n+1): #2开始,遇到2的倍数(4,6,8,10...)都赋值为False
j=i+i #3开始,遇到3的倍数(6,9,12...)都赋值为False
while j<n: #以此类推,把所有数字的倍数都赋值为False
l1[j]=False #输出值是True的数组下标
j = j + i
print("素数:")
T=[]
for i in range(2,n):
if l1[i]==True:
# print(i,end=" ")
T.append(i)
print(T[100001])
这种方法不是太快
浙公网安备 33010602011771号