引用百度百科:质数

基本判断思路:

在一般领域,对正整数n,如果用2到 之间的所有整数去除,均无法整除,则n为质数。

质数大于等于2 不能被它本身和1以外的数整除

具体就不进行证明了,举个栗子:
      16 = 2*8
      16 = 4*4
      16 = 8*2
      √16 = 4
       如果大于,即c=a*b和c=b*a就重复了

function isPrime($n) {if ($n <= 3) {return $n > 1;} else if ($n % 2 === 0 || $n % 3 === 0) { // 排除能被2整除的数(2x)和被3整除的数(3x)return false;} else { // 排除能被6x+1和6x+5整除的数for ($i = 5; $i * $i <= $n; $i += 6) {if ($n % $i === 0 || $n % ($i + 2) === 0) {return false;}}return true;}
}

1.由于2,3,4都被第2个if过滤掉了,所以循环中的$i可以从5开始。

2.for循环中$i+=6,步长等于6,表示6x+5和6(x+1)+1,x>=0且小于的所有整数。
1) 2,3,4....的整数可以表示为偶数(2x)和奇数(2x+1),其中第二个if条件把偶数(2x)和能被3整除的数(3x)已过滤,则还剩下奇数中不被3整数的数(3x+1,3x+2)还没有判断。
2) 3x+1中的奇数为 2(3x+1)-1=6x+1和2(3x+1)+1=6x+3=3(2x+1)被3整除已过滤 

3) 3x+2中的奇数为 2(3x+2)+1=6x+5和2(3x+2)-1=6x+3=3(2x+1)被3整除已过滤

所以6x+1和6x+5及2x、3x可以表示2,3,4....,其中for循环的次数较少。

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

  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. 网络空间安全Windows系统命令行学习笔记
  2. java byte 循环左移 循环右移 rotateLeft rotateRight
  3. 标准程序的Parameter id 并不一定准确
  4. html5计数器,CSS 计数器(counter)
  5. 线上日志集中化可视化管理:ELK
  6. SpringBoot最简单服务配置
  7. C 语言快速入门,21 个小项目足矣!「不走弯路就是捷径」
  8. 【数据结构】二叉排序树
  9. code vs1517 求一次函数解析式(数论 纯数学知识)
  10. 45万例患者基因检测显示:NGS很难检测出七分之一的致病变异
  11. blood vessel 图像分割_单图像九宫格形式发送朋友圈
  12. 【caffe-windows】 caffe-master 之图片转换成lmdb or leveldb
  13. OAF_开发系列18_实现OAF页面跳转setForwardURL / forwardImmediately(案例)
  14. iOS 加载本地HTML网页 js css images等文件
  15. Oracle 存储过程、存储函数 与原生 JDBC 调用
  16. Java编写五线谱上的音符_新手读懂五线谱
  17. 随机生成姓名,姓名生成器
  18. dreamweaver作业静态HTML网页设计模板——迪士尼影视电影(6页)带音乐
  19. 什么是Tower,Rack, blade服务器?
  20. 如何将计算机管理中的可用空间,怎样增加电脑可用内存

热门文章

  1. Unity开发:一个PC项目转WebGL遇到的问题解决汇总
  2. 怎样在苹果Mac鼠标或触控板上复制和粘贴?
  3. Python数据分析师工资怎么样?
  4. stm32 Ctext-M3内核最简单的多任务RTOS
  5. WIFI中的关键词,频率,频段,频宽,频带...你晕了没??.
  6. java导出文件放到压缩包里
  7. Cryengine渲染引擎剖析(转)
  8. 开发常用词汇表(带音标)
  9. 曼德博集合|最直观的数学之美——用Python看到“上帝的指纹”
  10. dos命令中DATE:~0,10输出日期格式名称格式/改为-