素数就是不能再进行等分的整数。比如: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])

这种方法不是太快

posted on 2019-12-23 18:22  小肥鱼~  阅读(109)  评论(0)    收藏  举报