判断素数与产生素数表(质数)
2015-12-21 15:49
302 查看
素数在小学数学也叫质数
方法:所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。
另外判断方法还可以简化。m不必呗2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。如果m不能被2~√m间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。
C++程序如下:
#include<iostream>
#include<cmath> //引用了数学函数平方根:sqrt()
using namespace std;
bool isprime(int x)
{
if(x==0||x==1) return 0; //将特殊情况0和1单独拿出来进行
for (int i=2;i<=sqrt(x)+0.5;i++) // 想想为何+0.5?因为假如sqrt(9)返回2.999999999,n=2,结果可就错了。
if (x%i==0) return false;
return true;
}
int main()
{
freopen("p.in","r",stdin);
freopen("p.out","w",stdout); //习惯用文件输入与输出,不明白的可参与相关资料
int x;
cin>>x;
cout<<isprime(x)<<endl; //0表示不是素数,非0表示是素数
return 0;
}
在实际编程中,如果每个数都要判断是否是素数,采用上面的算法,时间复杂度会很大。这时就采用素数表,一下子就简化了时间复杂度。
方法如下:筛法产生素数表
实现程序如下:
方法:所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。
另外判断方法还可以简化。m不必呗2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。如果m不能被2~√m间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。
C++程序如下:
#include<iostream>
#include<cmath> //引用了数学函数平方根:sqrt()
using namespace std;
bool isprime(int x)
{
if(x==0||x==1) return 0; //将特殊情况0和1单独拿出来进行
for (int i=2;i<=sqrt(x)+0.5;i++) // 想想为何+0.5?因为假如sqrt(9)返回2.999999999,n=2,结果可就错了。
if (x%i==0) return false;
return true;
}
int main()
{
freopen("p.in","r",stdin);
freopen("p.out","w",stdout); //习惯用文件输入与输出,不明白的可参与相关资料
int x;
cin>>x;
cout<<isprime(x)<<endl; //0表示不是素数,非0表示是素数
return 0;
}
在实际编程中,如果每个数都要判断是否是素数,采用上面的算法,时间复杂度会很大。这时就采用素数表,一下子就简化了时间复杂度。
方法如下:筛法产生素数表
实现程序如下:
相关文章推荐
- crontab 任务计划
- MD5 加密的简单封装
- EMV标准_百度百科
- 二分匹配最大独立集——hdu1068
- 千万并发的秘密-内核是问题的根本
- Lesson 30 The death of a ghost
- Linux指令--watch,at
- 插入排序的简单解释(C++)
- Android开发艺术探索学习-View的事件分发机制(二)
- jquery 使用过程中,iso 与 安卓 ,chrome ,ie 的差异性
- SSH——Struts2大战SpringMVC
- The 2015 China Collegiate Programming Contest E. Ba Gua Zhen hdu 5544
- Linux指令--watch,at
- 查看Linux系统版本的命令
- scala伴生对象,apply()及单例
- MySQL创建和操作数据库表demo
- java多线程编码注意事项
- 从 UIKit 到 AppKit
- 个人linux下编译c++工程所遇问题汇总
- 配置Samba