JS 判断一个数是否是质数(两种办法)

JavaScript037

JS 判断一个数是否是质数(两种办法),第1张

首先什么质数? 质数就是大于一的自然数中,只能被自己和1整除的数。了解了这个 很容易就能写出判断条件

普通写法:

利用算法的写法:

原理:一个数如果可以进行因数分解,那么必定一个因数<=他的平方根 另一个因数>=他的平方根 那么只需要从2开始 到平方根为止,如果能被整除 就代表不是质数。 (拿16举例,只要能被2整除就代表能被8整除所以只用判断一边)

/**

*判断该数是否为素数

*/

function isPrimeNum(num){

for (var i = 2i <num/2+1i++) {

if (num%i==0){

return false//表示不是质数

}

}

return true//表示为质数

}

console.log(isPrimeNum(7))//调用

// 定义函数,计算是不是质数, 只能被1和自己整除的数

function isPrime(n) {

    if (n <= 3) { return n > 1 }

    if (n % 2 == 0 || n % 3 == 0) { return false }

 

    for (var  i = 5 i * i <= n i += 6) {

        if (n % i == 0 || n % (i + 2) == 0) { 

            return false 

        }

    }

    return true

}

// 测试

console.log(isPrime(2)) // true

console.log(isPrime(3)) // true

console.log(isPrime(4)) // false

console.log(isPrime(5)) // true

运行结果: