JavaScript判断一个数是否为质数/素数 |
您所在的位置:网站首页 › 1是素数是什么数字 › JavaScript判断一个数是否为质数/素数 |
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 |