文章
13
粉丝
386
获赞
30
访问
67.8k
先预处理找到差不多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;
- }
登录后发布评论
暂无评论,来抢沙发