怎样判断一个数是不是质数

简介:

正确而迅速地判断一个自然数是不是质数,在数的整除性这部分知识中,是一项重要的基本技能。

  由于大于2的质数一定是奇数(奇数又不一定都是质数),所以,在判断一个自然数是不是质数时,首先要看它是奇数还是偶数。如果是大于2的偶数,这个数肯定不是质数,而是合数;如果是奇数,那就有可能是质数。在这种情况下,一般使用以下两种方法:

  (1)查表法:

  主要是指查“质数表”。编制质数表的过程是:按照自然数列,第一个数1不是质数,因此要除外,然后按顺序写出2至500的所有自然数,这些数中2是质数,把它留下,把2后面所有2的倍数划去,2后面的3是质数,接着再把3后面所有3的倍数划去,如此继续下去,剩下的便是500以内的全部质数。

  最早使用上述方法来寻求质数的人,是古代希腊数学家埃拉托斯特尼,由于他在开始时,先把自然数写在一块蜡板上,把不是质数的数(合数)分别刺上一个孔,这样,在蜡板上就被刺上了许多象筛子一样的孔,后来,大家就把这种寻求质数的方法叫做“筛法”。

     这类的质数表还可以编制成数字范围更大一些的,如1000以内质数表等。判断一个自然数是不是质数,如在表所规定的数字范围内,即可用查表的方法进行判断。

(2)试除法:

  在手头上没有质数表的情况下,可以用试除法来判断一个自然数是不是质数。例如判断143、179是不是质数,就可以按从小到大的顺序用2、3、5、7、11……等质数去试除。一般情况下用20以内的2、3、5、7、11、13、17、19这8个质数去除就可以了。如143,这个数的个位是3,排除了被2、5整除的可能性,它各位数字的和是1+4+3=8,也不可能被3整除,通过口算也证明不能被7整除,当试除到11时,商正好是13,到此就可以断定143不是质数。

  对179试除过程如下:

  179÷2=59……2

  179÷3=66……1

  179÷5=35……4

  179÷7=25……4

  179÷11=16……3

  179÷13=13……10

  179÷17=10……9

  当179÷17所得到的不完全商10比除数17小时,就不需要继续再试除,而断定179是质数。这是因为2、3、5、7、11、13、17都不是179的质因数,因此,179不会再有比17大的质因数,或者说179不可能被小于10的数整除,所以,179必是质数无疑。

  综上所述,用试除法判断一个自然数a是不是质数时,只要用各个质数从小到大依次去除a,如果到某一个质数正好整除,这个a就可以断定不是质数;如果不能整除,当不完全商又小于这个质数时,就不必再继续试除,可以断定a必然是质数。


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/10/07/2713592.html,如需转载请自行联系原作者

相关文章
|
Ubuntu C语言 SEO
百度搜索:蓝易云【Ubuntu安装GCC10教程。】
请注意,具体的安装步骤可能会因Ubuntu版本和软件包管理工具的变化而有所不同。以上步骤适用于大多数Ubuntu版本,但如果遇到任何问题,请参考官方文档或其他可靠资源以获取更详细的安装说明。
424 1
|
机器人 Python
Robot Framework之python脚本调用
前言 喜欢使用RF的原因之一就是能自己定义关键字,这篇就简单说下如何创建系统关键字,先来个最简单的,求比较两个数的大小 一、建立库文件 假设python的安装路径在D:/下面(作者是放在D:\python\python27) 1、在D:\python\...
4239 0
|
Shell Linux 网络安全
Linux中用户和个人配置文件介绍:讲解如何查看和修改Linux系统中的用户和个人配置文件
Linux中用户和个人配置文件介绍:讲解如何查看和修改Linux系统中的用户和个人配置文件
692 1
|
存储 缓存 负载均衡
什么是CDN(内容分发网络)?
什么是CDN(内容分发网络)?
10339 7
|
存储 分布式计算 OLAP
深度干货|谈谈阿里云AnalyticDB Spark如何构建低成本数据湖分析
本文将分享AnalyticDB MySQL Spark助力构建低成本数据湖分析的最佳实践。
|
前端开发 JavaScript 开发工具
跨域联姻:React.NET——.NET应用与React的完美融合,解锁前后端高效协作新姿势。
【8月更文挑战第28天】探索React.NET,这是将热门前端框架React与强大的.NET后端无缝集成的创新方案。React以其组件化和虚拟DOM技术著称,能构建高性能、可维护的用户界面;.NET则擅长企业级应用开发。React.NET作为桥梁,使.NET应用轻松采用React构建前端,并优化开发流程与性能。通过直接托管React组件,.NET应用简化了部署流程,同时支持服务器端渲染(SSR),提升首屏加载速度与SEO优化。
721 1
|
JSON 前端开发 Java
Jackson使用详解
Spring MVC 默认采用Jackson解析Json,尽管还有一些其它同样优秀的json解析工具,例如Fast Json、GSON,但是出于最小依赖的考虑,也许Json解析第一选择就应该是Jackson。
1653 0
Jackson使用详解
|
Linux API 开发者
python2安装wxpython模块源
【4月更文挑战第4天】
350 11
|
算法 安全 Java
浅析五种最常用的Java加密算法,以后可以直接拿来用了
信息加密是现在几乎所有项目都需要用到的技术,身份认证、单点登陆、信息通讯、支付交易等场景中经常会需要用到加密算法,所谓加密算法,就是将原本的明文通过一系列算法操作变成密文。接下来就介绍一下目前比较常用的一些加密算法,本期不涉及算法底层,以应用介绍和代码展示为主。 如果只想了解原理,可跳过代码部分,代码可直接拿来使用。
3278 0
|
人工智能 测试技术 决策智能
【AI Agent系列】【MetaGPT多智能体学习】4. 基于MetaGPT的Team组件开发你的第一个智能体团队
【AI Agent系列】【MetaGPT多智能体学习】4. 基于MetaGPT的Team组件开发你的第一个智能体团队
543 0

热门文章

最新文章