时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:6732
解决:2738
- 题目描述:
-
Output the k-th prime number.
- 输入:
-
k≤10000
- 输出:
-
The k-th prime number.
- 样例输入:
-
3 7
- 样例输出:
-
5 17
虽然是英文题,但是题目意思很明确。
所以直接枚举出所有的素数,然后输入一个输出一个结果就可以了。
应该有更加简单高效的算法,欢迎指教!
//Asimple #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cctype> #include <cstdlib> #include <stack> #include <cmath> #include <map> #include <string> #include <queue> #define INF 100000 using namespace std; const int maxn = 10000; typedef long long ll; int n, len; ll a[maxn]; bool prime(int n){ for(int i=2; i*i<=n; i++){ if( n % i == 0 ){ return false; } } return true; } void get_prime(){ a[len] = 2; len ++; for(ll i=3; ; i++){ if( prime(i) ){ a[len] = i; len ++; } if( len == maxn) break; } } int main(){ len = 0; get_prime(); while( ~scanf("%d",&n) ){ printf("%ld ",a[n-1]); } return 0; }