题目描述
输入一个正整数n,求第n小的质数
输入格式
一个不超过1000的正整数n;
输出格式
第n小的质数
输入/输出例子1
输入:
10
输出:
29
代码
#include <bits/stdc++.h>
void zs();
void zh();
bool z[20000001];
int a[20000001],n,m,p=2;
int main()
{
scanf("%d",&n);
zs();
zh();
printf("%d",a[n-1]);
return 0;
}
void zs()
{
z[0]=true;
z[1]=true;
for(int i=2;i<=20000000;i++)
{
if(z[i]==false)
{
for(int e=i*2;e<=20000000;e+=i)
{
z[e]=true;
}
}
}
}
void zh()
{
int bj=-1;
for(int i=0;i<20000000;i++)
{
if(z[i]==false)
{
bj+=1;
a[bj]=i;
}
}
}