JavaScript判断一个数是否为质数/素数

您所在的位置:网站首页 1是素数是什么数字 JavaScript判断一个数是否为质数/素数

JavaScript判断一个数是否为质数/素数

2024-07-14 05:11| 来源: 网络整理| 查看: 265

 JavaScript判断一个数是否为质数/素数

所谓素数,又称为素数,即自然数中只能被1和它本身整除的数。反之,除了1和它本身外还能被其他数整数的数称之为合数。特别说明的是0和1既不是质数也不是合数。

这里将介绍JavaScript中判断一个数是否为质数的两种方法:

1、我们知道小于等于3的质数只有2和3,因此这里以3做一个分隔判断是否为质数,大于3时从2开始到给定数值减1循环判断是否能整除给定的数值,如果能整除则给的数值不是质数,返回false,反正是质数,返回true。

function isPrime1(num) { if(num 1; } for(let i = 2; i < num; i ++) { if(num % i == 0) { return false; } } return true; }

2、这里先对质数做一个分析:

首先给出结论:设n为质数, 则当n > = 3时, 都有4 * x - 1 == n 或者 4 * x + 1 == n 。(x = 1, 2, 3, ...)

分析过程:由于4 * x 不是质数,因为它能被4整除,4 * x + 2 也不是质数,因为它能被2整除,只剩下4 * x + 1 和 4 * x + 3 (4 * x - 1),即一个数n如果大于等于3且是一个质数,那么它一定在4 * x的两侧,即4 * x - 1 == n 或者 4 * x + 1 == n (x = 1, 2, 3, ...)

当然这里的数值不一定是4,只要是能判断质数与这个值的关系就可以,例如当选择的数值是6时也可以得到大于等于3的质数在6的倍数两侧,选择的值较小的时候,那么对应的可能需要做的判断就越少,也就是循环里取余时需要做的判断就越少,但同时也会增加循环的次数,选择的值较大的时候,那么对应的可能需要做的判断就越多,也就是循环里取余时需要做的判断就越多,但同时也能减少循环的次数。这样处理的目的是加快运算的速度,即在进行循环取余判断的时候减少循环的次数。

function isPrime2(num) { if(num 1; } if(num % 4 != 1 && num % 4 != 3) { return false; } for(let i = 3; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3