文章
13
粉丝
386
获赞
2
访问
65.2k
先预处理找到差不多10000个素数,大概就是1e5以内可以找到,然后直接输出即可
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int N = 1e5 + 10;
bool arr[N];
vector<int> v;
void Initial(){
memset(arr, true, sizeof(arr));
arr[0] = arr[1] = false;
for(int i = 0;i < N; i++){
if(arr[i]){
v.push_back(i);
if(i > N / i) continue;
for(int j = i * i; j < N; j += i) arr[j] = false;
}
}
}
int main(){
int k;
Initial();
while(scanf("%d", &k) != EOF){
printf("%d\n", v[k - 1]);
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发