问题 B: Prime Number
Output the k-th prime number.
输入
k≤10000
输出
The k-th prime number.
样例输入 Copy
10
50
样例输出 Copy
29
229
注意maxn的取值大小,我这里取了1000000.切记打表一次就行,不能把find_prime函数放在while循环里面,不然一直时间超限
代码时间:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000000;
int prime[maxn],pnum=0;
bool p[maxn]={0};//如果i为素数,则p[i]为false;否则,p[i]为true;
void find_prime(){
for(int i=2;i<maxn;i++){
if(p[i]==false){
prime[pnum++]=i;
for(int j=2*i;j<maxn;j+=i){
p[j]=true;
}
}
}
}
int main()
{
int k;
find_prime();
while(scanf("%d",&k)!=EOF)
{
printf("%d\n",prime[k-1]);
}
return 0;
}