项目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/

判断一个数是否为质数相关推荐

  1. 判断一个数是否为质数的三种方法

    转载自:https://blog.csdn.net/m0_37586991/article/details/79673837?depth_1-utm_source=distribute.pc_rele ...

  2. 判断一个数是否是质数

    判断一个数是否是质数. 方法1. 在大于 1 的自然数中,如果 num 有除了 1 和自身以外的因数,说明 num 不是质数,返回 0. 最简单的方法是 i 从 2 到 num-1 都试一遍,看是否能 ...

  3. 2013.12.26 泡面吧--判断一个数是否为质数

    判断一个数是否为质数. 输入包括一行,为一个整数N(1 < N ≤1000),正是晓萌给出你让你判断的数字.<n≤1000). 输出包括一行,如果晓萌给出的整数N为质数,那么输出YES:如 ...

  4. C语言判断一个数是否是质数(蒙格马利快速幂算法)

    前言: 今天搞了一天这个 蒙格马利 什么的,我自己肯定是搞不定,参照了很多资料,写一下自己的理解总结,防止忘了没地方看. 只是我个人的理解,对不对还得另说,一些公式还是不懂,只是大概的理解了下,各位当 ...

  5. Java实现——判断一个数是否是质数

    质数(又名素数):只能被1和它本身整除的正整数(它本身不能是1,最小的质数是2,2也是唯一的偶数质数).存在除1和它本身外的因数的正整数是合数.判断一个数是否是质数时,只要试到它的平方根即可.一个合数 ...

  6. JAVA判断一个数是否为质数

    JAVA判断一个数是否为质数 输入一个正整数N,判断该数是不是质数,如果是质数输出"N是一个质数",否则输出"N不是质数". 提示:质数的含义:除了1和它本身不 ...

  7. java小算法—判断一个数是否为质数

    判断一个数是否为质数:只能被1和自身整除的数 1.代码 public class Test {public static void main(String[] args) {boolean b=isP ...

  8. 【Java基础[判断一个数是否是质数]】

    判断一个数是否是质数: 对于质数的定义是:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. public static void main (String []args){//质 ...

  9. 判断一个数是否是质数(素数)

    质数(prime number)又称素数,有无限个. 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数. // 封装一个函数,实现判断一个数是否是质数的功能function isZS(m ...

  10. 快速判断一个数是否为质数

    质数(素数): 在大于1的自然数中,除了1和它本身以外不再有其他因数的数. 合数: 自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数,与质数相对. 如何判断一个数是否为质数 方法一: 从 ...

最新文章

  1. 无线AP、WiFi、WLAN是什么关系?
  2. 新版中青——青龙羊毛
  3. 我们计划招收300名学员,免费攻读人工智能专业!
  4. 使用RestTemplate模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别
  5. Linux之GDB调试命令
  6. zap安装提示java_使用API调用进行ZAP身份验证
  7. 【Java】格式化的文件I/O
  8. 狗狗币协议发布新版本Dogecoin Core 1.14.3
  9. idea安装drl插件
  10. python subplots_python fig,ax = plt.subplots()
  11. 南非醉茄提取物行业调研报告 - 市场现状分析与发展前景预测
  12. free 和 fclose
  13. jsp springmvc 视图解析器_SpringMVC 视图解析器
  14. Python 散点图的数据分析
  15. openLooKeng视图详解
  16. 英文经典老歌列表~~~~
  17. KNEEL: Knee Anatomical Landmark Localization Using Hourglass Networks
  18. 电脑插上网线无法连接网络完美解决方案
  19. 一文学会CentOS 文件常用命令
  20. 网站是什么?网站的类型构成-从SEO到优化实战大师

热门文章

  1. 鳄梨种植者使用传感器节省种植成本
  2. 【Eclipse使用教程】最全的Eclipse快捷键
  3. Android Makefile and build system 分析
  4. php连接oracle设定字符集,避免乱码
  5. Struts2的模型驱动封装方法获取页面提交的表单数据(接收表单数据的最常用的方法)
  6. 网盘纷纷“隐退” 云存储仍是刚需
  7. U盘病毒“替身”大量交叉感染 打印店电脑助扩散
  8. velocity include
  9. FMS3 客户端call服务器端
  10. x86体系Linux内核进程切换原理(64位和32位)