-1

誰かがこのコードのエラーを見つけるのを手伝ってくれませんか? 私は自分が思いついたことを読んでおり、論理的には各ステップで理にかなっていますが、望ましい結果が得られていません. 最後に 6 で関数の呼び出しをテストします。

function is_prime(num) {
    if (isNaN(num)) return false;
    var numFactors = 0;
    for (i=1; i<=num; i++) {
        if (num % i === 0) {
        numFactors += 1;
        }
        return numFactors;
    }
    if (numFactors === 2) {
        return true;
    }
    else {
        return false;
    }
}

console.log(is_prime(6));
4

4 に答える 4

0

因数分解のために 1 から num までのすべての数値をステップ実行しているので、それらを因数として選択して、関数をもう少し活用することもできます。

function fact(num) {
    if (isNaN(num)) return false;
    var Factors=[];
    for (i=1; i<=num; i++) {
     if (num % i == 0)  Factors.push(i)
    }
    return Factors
}

console.log('factors: '+fact(27));
console.log('is prime: '+fact(27).length===2);
于 2013-07-29T17:14:59.897 に答える