首先什么质数? 质数就是大于一的自然数中,只能被自己和1整除的数。了解了这个 很容易就能写出判断条件
普通写法:
利用算法的写法:
原理:一个数如果可以进行因数分解,那么必定一个因数<=他的平方根 另一个因数>=他的平方根 那么只需要从2开始 到平方根为止,如果能被整除 就代表不是质数。 (拿16举例,只要能被2整除就代表能被8整除所以只用判断一边)
function isPrime(num) {if (num == 1)
return false
if (num == 2 || num == 3)
return true
if (num % 6 != 1 && num % 6 != 5)
return false
var temp = Math.sqrt(num)
for (var i = 5 i <= temp i += 6) {
if (num % i == 0 || num % (i + 2) == 0)
return false
}
return true
}
isPrime(17) // true
function checkPrimeNum(num){if(num<2){
return false
}
for(var i=2i<numi++){
if(num%i==0){
return false
}
}
return true
}