判断一个数是否是素数(质数)
思路:除了自身和1以外,不能被其他数整除。
注意点:
1.必须用for循环实现
2.判断是否是素数,所以她的返回值应该是true或者false。
3.如果num%i===0了,那么一定不是素数。只有出了1和自身以外所有的数都不能整除,那么才能说她是素数。
(1)算法完整遍历
function isPrime(num){
//除了自身和1以外,不能被其他数整除。
for(var i=2;i<num;i++){
if(num%i===0){
return false;
}
}
return true;
}
(2)中级算法
function isPrime(num){
//除了自身和1以外,不能被其他数整除。
for(var i=2;i<=num/2;i++){
if(num%i===0){
return false;
}
}
return true;
}
(3)高级算法版本
function isPrime(num){
//除了自身和1以外,不能被其他数整除。
//判断一个数是不是指数,只需要判断到他的平方根,超过平方根在判断,无意义。
//因为一个数是由两个数相称得到的,一个变大,另外一个必然变小,那么判断到这个数的平方根就已经是极限了,不必超过平方根
for(var i=2;i<=Math.sqrt(num);i++){
if(num%i===0){
return false;
}
}
return true;
}