-
题目描述:
-
Output the k-th prime number.
-
输入:
-
k≤10000
-
输出:
-
The k-th prime number.
-
样例输入:
-
3 7
-
样例输出:
-
5
17
-
#include<stdio.h> #define MAX 10001 int PrimeSize;//素数个数 int Prime[MAX];//存素数 int Mark[MAX];//标记素数 //默认标记数组0为是素数,1为不是素数 void Select(){ PrimeSize=0;//初始化素数个数为0 for(int i=0;i<MAX;i++) Mark[i]=0;//对标记数组进行初始化 for(int i=2;i<MAX;i++){ if(Mark[i]) continue;//如果标记为1,则表示不是素数,继续进行循环 Prime[PrimeSize++]=i;//否则就将该数加入到素数的数组中 for(int j=i*i;j<MAX;j+=i)//该素数i的倍数全部标记为1非素数 Mark[j]=1; } } int main(){ Select(); int k; while(~scanf("%d",&k))//有多组测试用例 printf("%d\n",Prime[k-1]);//输出第k个素数,注意此时下标是第k-1个 return 0; }