总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个正整数n,求第n小的质数。
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
***#include<stdio.h>
#include<math.h>
#include<stdbool.h>
bool isprime(int a);//boll函数判断是否是素数,是则返回1,不是返回0。初学者不会bool类型函数的也可以用int类型
int main()
{
int a[2000000];//定义估计大于第10000个素数的下标
int i,n,k=0;
scanf("%d",&n);
for(i=2;i<2000000;i++)
a[i]=isprime(i);//把数组里所有的素数初始化为1,其他则为0.
for(i=2; i<=2000000; i++)
{
if(a[i]==1)//将素数保留,其他剔除,将素数排队编号。
k++;
if(k==n)
break;
}
printf("%d",i);
return 0;
}
bool isprime(int a)//
{
int b,temp=sqrt(a);
for(b=2; b<=temp; b++)
{
if(a%b==0)
{
return 0;
}
}
return 1;
}
***