总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个正整数n,求第n小的质数。
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
以前写过一种题解,不过在学过欧拉筛选法后有试着写了一下,秒ac啊(算法果然很重要啊!!!)
#include<bits/stdc++.h>
using namespace std;
int a[10000000],i,j,p[10001],t=1,n;
int main()
{
cin>>n;
a[1]=1;
for(i=2;i<=1000000;i++)
{
if(!a[i])
{
p[t]=i;
if(t==n)
{
cout<<p[n];return 0;
}
t++;
}
for(j=1;j<=t&&i*p[j]<=1000000;j++)
{
a[i*p[j]]=1;
if(i%p[j]==0)
break;
}
}
return 0;
}