判断一个数是否为质数
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
1.质数的定义
只要有小学毕业证的同学都知道质数是什么鬼。因为本人没有小学毕业证,特意记录一下质数的定义:
对于大于1的数,如果除了1和它本身,它不能再被其它正整数整除,那么我们说它是一个质数。
2.判断是否为质数
import mathdef isPrime(n):if n == 1:return Falseelif n < 4:return Trueelse:sqrtNum = int(math.sqrt(n))//注意range的右边是开区间,所以要加1for i in range(2,sqrtNum+1):if n % i == 0:print "%d is not a prime number!" %nprint "%d is a prime number! " %n
比较简单的版本,从2开始一直到n的均方根,如果都除不尽,那么n为质数。
3.优化版
def isPrime2(n):if n == 1:print "%d is not a prime number!" %nreturn Falseif n == 2 or n == 3:print "%d is a prime number!" %nreturn Trueif(n % 2 == 0)://先判断是否为偶数,若偶数就直接结束程序 return False //从3开始,到n的算术平方根结束,步进为2 for i in range(3,int(math.sqrt(n))+1,2):if(n % i == 0):print "%d is not a prime number!" %nreturn Falseprint "%d is a prime number!" %nreturn True
首先如果是偶数,直接返回;然后从3开始,步长为2,一直到n的算术平方根为止,都除不尽则为偶数。
4.判断一个数是否为质数,为什么除到其平方根就可以了
因为如果一个数不是素数是合数,
那么一定可以由两个自然数相乘得到,
其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。
如果要继续优化算法,请参考以下内容:
https://joezou.wordpress.com/2009/05/13/%E6%88%91%E4%B8%8E%E7%B4%A0%E6%95%B0/amp/
判断一个数是否为质数相关推荐
- 判断一个数是否为质数的三种方法
转载自:https://blog.csdn.net/m0_37586991/article/details/79673837?depth_1-utm_source=distribute.pc_rele ...
- 判断一个数是否是质数
判断一个数是否是质数. 方法1. 在大于 1 的自然数中,如果 num 有除了 1 和自身以外的因数,说明 num 不是质数,返回 0. 最简单的方法是 i 从 2 到 num-1 都试一遍,看是否能 ...
- 2013.12.26 泡面吧--判断一个数是否为质数
判断一个数是否为质数. 输入包括一行,为一个整数N(1 < N ≤1000),正是晓萌给出你让你判断的数字.<n≤1000). 输出包括一行,如果晓萌给出的整数N为质数,那么输出YES:如 ...
- C语言判断一个数是否是质数(蒙格马利快速幂算法)
前言: 今天搞了一天这个 蒙格马利 什么的,我自己肯定是搞不定,参照了很多资料,写一下自己的理解总结,防止忘了没地方看. 只是我个人的理解,对不对还得另说,一些公式还是不懂,只是大概的理解了下,各位当 ...
- Java实现——判断一个数是否是质数
质数(又名素数):只能被1和它本身整除的正整数(它本身不能是1,最小的质数是2,2也是唯一的偶数质数).存在除1和它本身外的因数的正整数是合数.判断一个数是否是质数时,只要试到它的平方根即可.一个合数 ...
- JAVA判断一个数是否为质数
JAVA判断一个数是否为质数 输入一个正整数N,判断该数是不是质数,如果是质数输出"N是一个质数",否则输出"N不是质数". 提示:质数的含义:除了1和它本身不 ...
- java小算法—判断一个数是否为质数
判断一个数是否为质数:只能被1和自身整除的数 1.代码 public class Test {public static void main(String[] args) {boolean b=isP ...
- 【Java基础[判断一个数是否是质数]】
判断一个数是否是质数: 对于质数的定义是:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. public static void main (String []args){//质 ...
- 判断一个数是否是质数(素数)
质数(prime number)又称素数,有无限个. 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数. // 封装一个函数,实现判断一个数是否是质数的功能function isZS(m ...
- 快速判断一个数是否为质数
质数(素数): 在大于1的自然数中,除了1和它本身以外不再有其他因数的数. 合数: 自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数,与质数相对. 如何判断一个数是否为质数 方法一: 从 ...
最新文章
- 无线AP、WiFi、WLAN是什么关系?
- 新版中青——青龙羊毛
- 我们计划招收300名学员,免费攻读人工智能专业!
- 使用RestTemplate模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别
- Linux之GDB调试命令
- zap安装提示java_使用API调用进行ZAP身份验证
- 【Java】格式化的文件I/O
- 狗狗币协议发布新版本Dogecoin Core 1.14.3
- idea安装drl插件
- python subplots_python fig,ax = plt.subplots()
- 南非醉茄提取物行业调研报告 - 市场现状分析与发展前景预测
- free 和 fclose
- jsp springmvc 视图解析器_SpringMVC 视图解析器
- Python 散点图的数据分析
- openLooKeng视图详解
- 英文经典老歌列表~~~~
- KNEEL: Knee Anatomical Landmark Localization Using Hourglass Networks
- 电脑插上网线无法连接网络完美解决方案
- 一文学会CentOS 文件常用命令
- 网站是什么?网站的类型构成-从SEO到优化实战大师