本文主要是介绍九度OJ 1040:Prime Number(质数) (递归),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 题目描述:
-
Output the k-th prime number.
- 输入:
-
k≤10000
- 输出:
-
The k-th prime number.
- 样例输入:
-
3 7
- 样例输出:
-
5 17
- 来源:
- 2008年上海交通大学计算机研究生机试真题
思路:
求质数要注意时间复杂度,只需要搜到sqrt(n)即可判断是否为质数。
另外如果多次求解,可以预先存数组,这样避免多次求解。
代码:
#include <stdio.h>
#include <math.h>int isprime(int n)
{for (int i=2; i<=sqrt(n); i++){if (n%i == 0)return 0;}return 1;
}int kthprime(int k)
{int n = 1;while (k--){n++;while (! isprime(n))n++;}return n;
}int main(void)
{int k;while (scanf("%d", &k) != EOF){printf("%d\n", kthprime(k));}return 0;
}
/**************************************************************Problem: 1040User: liangrx06Language: CResult: AcceptedTime:70 msMemory:928 kb
****************************************************************/
这篇关于九度OJ 1040:Prime Number(质数) (递归)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!