大家都知道素数是数学中很有意思的一类数,或许聪明的你已经知道了如何判定一个数是否是素数,但今天不一样了,你的任务是求第K大素数。你能快速完成吗?
输出只有一行,即第K大素数。
5
11
#include <stdio.h>
#include <math.h>
#include <string.h>
int Primer(int n)//判断素数
{
if(n <= 1)
return 0;
for(int i = 2; i <= sqrt(n); i++)
{
if(n % i == 0)
return 0;
else
continue;
}
return 1;
}
int main()
{
int k,i;
int a[10010];
memset(a,0,sizeof(a));
scanf("%d",&k);
a[0] = 2;
a[1] = 3;
i=2;
for(int n =5; i <10010; n += 2)//筛选,因为数值较大
{
if(Primer(n))
a[i++] = n;
}
printf("%d\n",a[k-1]);
return 0;
}
原文:http://blog.csdn.net/u013486414/article/details/41392593