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