一、遍历大法
function isPrime(num) {
for (let i=2; i<num; i++){
if (num % i === 0) {
return false
}
}
return true
}
console.log(isPrime(11)); // true,i=2~10
二、更高效的质数判断
- 对于每个数n ,其实并不需要从2判断到n-1
- 一个数若可以进行因数分解,那么分解时得到的两个数-定是一个小于等于sqrt(n),-个大于等于sqrt(n).
- 比如1 6可以被分别.那么是28, 2小于sqrt(16),也就是4, 8大于4.而44都是等于sqrt(n)
- 所以其实我们遍历到等于sqrt(n)即可
function isPrime(num) {
for (let i=2; i<=parseInt(Math.sqrt(num)); i++){
if (num % i === 0) {
return false
}
console.log(i)
}
return true
}
console.log(isPrime(11)); // true, i=2、3