fork download
  1. #include <iostream>
  2. using namespace std;
  3. int n,arr[100000500],l=1,prime[100000500];
  4. bool v[100000500];
  5. void init(int n){
  6. v[0]=v[1]=true;
  7. int cnt=0;
  8. for(int i=2;i<=100000000;i++){
  9. if(!v[i]) prime[++cnt]=i;
  10. for(int j=1;j<=cnt&&i*prime[j]<=100000000;j++){
  11. v[prime[j]*i]=true;
  12. if(i%prime[j]==0) break;
  13. }
  14. }
  15. for(int i=1;i<=100000000;i++){
  16. if(v[i]==0){
  17. arr[l]=i;
  18. l++;
  19. }
  20. }
  21. }
  22. int main(){
  23. int n,q,k;
  24. init(n);
  25. cin>>n>>q;
  26. for(int i=1;i<=q;i++){
  27. cin>>k;
  28. cout<<arr[k]<<"\n";
  29. }
  30. return 0;
  31. }
  32. /*
  33. v[0]=v[1]=true;
  34. for(int i=2;i<=n;i++){
  35. if(!v[i]) prime[++cnt]=i;
  36. for(int j=1;j<=cnt&&i*prime[j]<=n;j++){
  37. v[prime[j]*i]=true;
  38. if(i%prime[j]==0) break;
  39. }
  40. }
  41. */
Success #stdin #stdout 0.72s 148756KB
stdin
100 5
1
2
3
4
5
stdout
2
3
5
7
11