题目1040:Prime Number(素数的生成)
2017-04-14 22:11
274 查看
题目1040:Prime Number
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:8637
解决:3419
题目描述:
Output the k-th prime number.
输入:
k≤10000
输出:
The k-th prime number.
样例输入:
样例输出:
来源:2008年上海交通大学计算机研究生机试真题
答疑:解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7764-1-1.html
思路:没有什么比较好的方法 ,就是要生成相应个数的素数
(2)来个算法时间更低的
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:8637
解决:3419
题目描述:
Output the k-th prime number.
输入:
k≤10000
输出:
The k-th prime number.
样例输入:
3 7
样例输出:
5 17
来源:2008年上海交通大学计算机研究生机试真题
答疑:解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7764-1-1.html
思路:没有什么比较好的方法 ,就是要生成相应个数的素数
#include <iostream> #include<cmath> #include <fstream> using namespace std; int prime[10001]={0,2,3,5,7,11,13}; int main() { ifstream in; in.open("3.txt"); for(int i=7;i<10001;++i)//生成素数 { bool flag=false; int n=prime[i-1]+2; while(flag==false) { int j; for(j=2;j<=sqrt(n);++j) { if(n%j==0) { n=n+2; break; } } if(j>sqrt(n)) { prime[i]=n; flag=true; } } } int m; while(cin>>m) { cout<<prime[m]<<endl; } return 0; }
(2)来个算法时间更低的
#include <iostream> #include<cmath> #include <fstream> using namespace std; int prime[10001]={0,2,3}; int main() { ifstream in; in.open("3.txt"); int cnt=3; for(int i=5;cnt<10002;i+=2)//生成素数 { bool flag=true; for(int j=1;prime[j]*prime[j]<=i;++j) { if(i%prime[j]==0) { flag=false; break; } } if(flag==true) prime[cnt++]=i; } int m; for(int i=1;i<26;++i) cout<<prime[i]<<endl; while(cin>>m) { cout<<prime[m]<<endl; } return 0; }
相关文章推荐
- 题目1040:Prime Number(第k个素数)
- 题目1040:Prime Number 题目1047:素数判定
- 九度OJ 1040 Prime Number (筛素数,试除法)
- 题目1040:Prime Number
- python技巧——使用list comprehension生成素数(prime number)
- 题目1040:Prime Number
- 题目1040:Prime Number
- 52-题目1040:Prime Number
- JD 题目1040:Prime Number (筛法求素数)
- 题目1040:Prime Number
- JD 题目1040:Prime Number (筛法求素数)
- 题目1040:Prime Number
- 题目1040:Prime Number
- 题目1040:Prime Number
- 题目1040:Prime Number
- 九度OJ—题目1040:Prime Number
- 题目1040:Prime Number
- 【九度】题目1040:Prime Number
- 九度 oj 题目1040:Prime Number
- 题目1040:Prime Number