题目描述
大家都知道素数是数学中很有意思的一类数,或许聪明的你已经知道了如何判定一个数是否是素数,但今天不一样了,你的任务是求第K大素数。你能快速完成吗?
输入
输入只有一个整数K。 ps:我们只关心那些正整数。
输出
输出只有一行,即第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 ",a[k-1]); return 0;