用原生JS判斷素(質)數,並找出100~1000之間的全部素(質)數

素數:又稱質數,即「大於1,且只能被1和它自己整除的數」

步驟構思:
一、for遍歷循環找其餘約數
二、if設置知足條件(計數器從2開始,不包括它自己)有則中斷輸出
數組

需求一:判斷素(質)數

function primeNum(num) { // 聲明命名函數(形參)
        var flag = true; // 變量儲存=條件爲真
        for (var i = 2; i < num; i++) { // for設置循環體,遍歷是否存在其餘約數(素數:從2開始只能被1和自身整除)
            if (num % i === 0) {
                flag = false
                break // 存在則終止執行並返回輸出
            }
        }
        return flag // 返回該變量的真假值
    }
    var values = primeNum(9) // 用數字9來測試
    console.log(values); // false


需求二:找出100~1000之間的全部素(質)數

var primeNum = [] // 該區間全部素數的集合就是一個數組
    var i = 0;
    var count = 0; // 計算素數的個數
    for (i = 100; i <= 1000; i++) {
        var j = 0;
        for (j = 2; j < i; j++) { // 素數需條件"大於1,且只能被1和它自己整除的數"
            if (i % j === 0) { // 能被其餘數整除則爲非質數,終止遍歷
                break;
            }
        }
        if (j >= i) { // !JavaScript沒有"塊級做用域",變量j在for循環賦值結束後仍存在於"外部環境"!
            count++; // 計算素數的個數
            primeNum.push(i) // 累計追加的素數
        }
    }
    console.log('共有素數' + count + '個');
    console.log(primeNum); // 輸出目標結果數組
相關文章
相關標籤/搜索