JS判断一个数是否为质数


质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数

2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
S1 20个
73 79 83 89 97
100以内共25个
function isPrime(num){
    // 不是数字或者数字小于2
    if(typeof num !== "number" || !Number.isInteger(num)){      // Number.isInterget 判断是否为整数 return false;
    }

    //2是质数
    if(num == 2){
        return true; 
    }else if(num % 2 == 0){  //排除偶数
        return false;
    }
    //依次判断是否能被奇数整除,最大循环为数值的开方
    var squareRoot = Math.sqrt(num);
    //因为2已经验证过,所以从3开始;且已经排除偶数,所以每次加2
    for(var i = 3; i <= squareRoot; i += 2) {
      if (num % i === 0) {
         return false;
      }
    }
    return true;
}

// 质数求和
function count(range){
    var counter = 0;
    for(var i = 0; i < range; i++){
        if(isPrime(i)){
            counter += i;
        }
    }
    return counter;
}

alert(count(25));

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM