思路
这题思路就是用y总算法基础课说的线性筛质数,每筛到一个质数就用数组储存起来,最后输出数组第2019个数(即为第2019个质数)
板子题链接 https://www.acwing.com/problem/content/870/
上代码
import os
import sys
st=[False]*(2000010);ans=[] //ans数组储存每个质数
prime=[0]*(1000010);cnt=0
def Prime(n): //直接套‘线性筛质数’板子
global cnt
for i in range(2,n+1):
if not st[i]:
ans.append(i)
prime[cnt]=i
cnt+=1
j=0
while prime[j]<=n/i:
st[prime[j]*i]=True
if i%prime[j]==0:
break
j+=1
if __name__=='__main__':
Prime(1000010)
print(ans[2018]) //输出第2019个质数
输出
17569