判断一个数是否是质数?

判断一个数是否是素数(质数)
    思路:除了自身和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;
   }

猜你喜欢

转载自www.cnblogs.com/hasher/p/9254436.html
今日推荐