1 solutions
-
1
埃氏筛
#include<bits/stdc++.h> using namespace std; vector<int>p; bool ip[100000005]; void EP(int n){ ip[0]=ip[1]=false; for(int i=2;i<=n;i++)ip[i]=true; for(int i=2;i<=n;i++){ if(ip[i]){ p.push_back(i); if((long long)i*i>n){ continue; } for(int j=i*i;j<=n;j+=i){ ip[j]=false; } } } } int n,q; int main(){ scanf("%d%d",&n,&q); EP(n); while(q--){ int k; scanf("%d",&k); printf("%d\n",p[k-1]); } return 0; }
- 1
Information
- ID
- 1124
- Time
- 2000ms
- Memory
- 512MiB
- Difficulty
- 8
- Tags
- # Submissions
- 55
- Accepted
- 7
- Uploaded By