①查询第k小的素数
②线性筛模板
题目链接:洛谷P3383 【模板】线性筛素数
public static void main(String[] args) {
// TODO Auto-generated method stub
//int T=sc.nextInt();
int T=1;
while(T-->0) {
solve();
}
}
static void solve() {
int n=sc.nextInt();
Prime(n);
int q=sc.nextInt();
while(q-->0) {
out.println(prime[sc.nextInt()]);
}
out.flush();
}
static int prime[]=new int[(int)6e6+10],cnt=0;//存素数
static boolean isprime[]=new boolean[(int)1e8+10];
static void Prime(int n) {
Arrays.fill(isprime,true);
isprime[1]=false;
for(int i=2;i<=n;i++) {
if(isprime[i])prime[++cnt]=i;
for(int j=1;j<=cnt&&i*prime[j]<=n;j++) {
isprime[i*prime[j]]=false;
if(i%prime[j]==0)break;
}
}
}