XDOJ1174 - 素数时间
来源:互联网 发布:调查报告 知乎 编辑:程序博客网 时间:2024/05/29 06:56
Description
素数对ACM里的数论来说永远是一个最美丽的话题,现在又到了素数时间了。现在给你一个整数m(4 <=m<= 10^18),那么能不能找出m的一个素因子p是比n(2 <= n <= 10^6)小的呢?
Input
多组数据,每行两个数字m和n,以0 0结束
Output
如果存在,输出BAD p(这个素因子),如果存在多个输出最小的;如果不存在,就输出GOOD吧。(如样例所示)
Sample Input
143 10
143 20
667 20
667 30
2573 30
2573 40
0 0
143 20
667 20
667 30
2573 30
2573 40
0 0
Sample Output
GOOD
BAD 11
GOOD
BAD 23
GOOD
BAD 31
BAD 11
GOOD
BAD 23
GOOD
BAD 31
解题思路:
主要就是求解1000000内的素数,但是一直WA,后来才发现是没注意到p<n,而不是p<=n.哎!
#include<iostream>#include<cmath>using namespace std;const int D = 1000000;int primes[D/3];bool isPrimes[D+1];int primeN;void init(){ for(int i=0;i<=D;++i) isPrimes[i] = true; primeN = 0; for(int i=2;i<=D;++i) { if(isPrimes[i]){ for(int j=2*i;j<=D;j+=i) { isPrimes[j] = false; } primes[primeN++] = i; } }}int main(){ long long m,n; init(); while(cin>>m>>n) { if((m|n)==0) break; int i; for(i=0;i<primeN&&primes[i]<n;++i) { if(m%primes[i]==0) { cout<<"BAD "<<primes[i]<<endl; break; } } if(primes[i]>=n||i==primeN) cout<<"GOOD"<<endl; } return 0;}
0 0
- XDOJ1174 - 素数时间
- 线性时间筛素数
- 线性时间素数筛
- python求素数时间
- 素数优化时间
- 素数筛法求素数(线性时间)
- 素数(降低时间复杂度)
- 简单-素数求解 时间缩短
- 短小精悍的线性时间素数筛法
- 筛素数 时间复杂度:O(N)
- 短小精悍的线性时间素数筛法
- 短小精悍的线性时间素数筛法
- poj 2689 线性时间筛选素数
- 素数打表(常用素数判断题节省时间复杂度)
- 线性时间求素数及欧拉phi函数
- 【转】短小精悍的线性时间素数筛法
- 以空间换时间高效求素数算法
- 短小精悍的线性时间素数筛法(转)
- 保存下载的图片
- DAE模型与骨骼动画解析渲染
- linq 多表连接 lambal left join
- c/c++中static关键字的总结
- Python 正则表达式验证整数
- XDOJ1174 - 素数时间
- 两个多线程笔试问题引发的思考
- centos6.4安装hadoop2.2.0
- 数据库索引的优缺点及使用时的注意事项
- 【Linux】内核空间和用户空间详解
- TCP与UDP的区别
- android 的TableLayouyt的边框的简单应用
- Eclipse IDE for Java EE 搭建 Android开发环境
- 文件域美化