Description
输入一个正整数 �n,求正整数范围中第 �n 小的质数。
Input
一个不超过 3000030000 的正整数 �n。
Output
第 �n 小的质数。
Sample 1
Inputcopy | Outputcopy |
---|
10
| 29 #include<bits/stdc++.h>
#define endl '\n'
#define ll long long
#define int ll
using namespace std;
const int N=1e6+7;
int a[N];
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n;
cin>>n;
for(int i=0;i<=N;i++)
{
a[i]=0;
}
a[1]=1;
int cnt=0;
for(int i=2;i<=N;i++)
{
if(a[i]==1) continue;
for(int j=i*i;j<N;j+=i)
{
a[j]=1;
}
}
for(int i=1;i<=N;i++)
{
if(a[i]!=1) cnt++;
if(cnt==n)
{
cout<<i<<endl;
return 0;
}
}
return 0;
} |