PAT1013
来源:互联网 发布:李腾飞 java 编辑:程序博客网 时间:2024/06/03 18:15
#include<iostream>#include<vector>#include<math.h>using namespace std;int main() { int beg,end; cin >> beg>>end; vector<int> vec; //2是第1个质数,奇数不可能是2的倍数 vec.push_back(3); int a = 5, num = 2; while (num <= end) { bool mark = true; int size = vec.size(); int j = sqrt(a)+1; for (int i = 0;i<size&&vec[i]<j;++i) if (a%vec[i] == 0) { mark = false; break; } if (mark == true) { ++num; vec.push_back(a); } a += 2; } vector<int>::iterator iter1; if (beg == 1) { iter1 = vec.begin(); cout << "2"; } else { iter1 = vec.begin() + (beg - 2); cout << *iter1; ++iter1; } auto iter2 = iter1 + (end - beg); num = 1; while (iter1!=iter2) { if (num == 10) { num = 0; cout << endl; cout << *iter1; } else cout << " " << *iter1; ++iter1;++num; } return 0;}
注意第1个质数为2。
在判断1个数是否为质数时,只需要判断到不大于其开根号的部分。(后面的部分是重复的)关于sqrt函数(定义在math.h)的实现可以参考这篇博客:这里写链接内容
速度远快于判断每个vec元素的平方后比大小
阅读全文
0 0
- pat1013
- PAT1013
- PAT1013
- PAT1013
- PAT1013. 数素数
- PAT1013. Battle Over Cities
- pat1013 Battle Over Cities
- PAT1013数素数
- pat1013:数素数
- pat1013. 数素数 (20)
- PAT1013. 数素数 (20)
- PAT1013数素数~~~
- PAT1013 数素数
- PAT1013 并查集
- PAT1013. Battle Over Cities (25)
- PAT1013 BASIC:数素数 (20)
- 从零单排PAT1013,1014
- PAT1013. Battle Over Cities (25)
- npm更改源
- python(一)变量
- R计算移动平均的方法
- VTK学习(十五)封闭性检测
- tensorflow暂未兼容cuda9.0, 安装cuda8.0
- PAT1013
- 数据的异常处理
- Eclipse Git+Gerrit配置及提交流程
- 井下矿工,白书P318LA5131(点双连通分量应用)
- 外部进程嵌入到Qt进程界面
- jquery 实现 图片上传 预览
- 线程监控
- myEclipse更改网站名称
- Xcode工程直接拖