试图想出一个函数来检查一个数字是否是素数,我遇到了麻烦。我确信有一种更简单的方法可以做到这一点,但为什么这个函数不会为数字 9 返回 false?它为偶数返回 false,但对于任何其他类型的合数,它返回未定义,但由于它打印 NOT PRIME,它也应该返回 false。
function isPrime(n, i) {
document.writeln(i);
var nextNum = i + 1;
var number = n;
if (i < n) {
if ((n % i) === 0) {
document.writeln("NOT PRIME");
return false;
} else {
document.writeln(nextNum);
isPrime(number, nextNum);
}
} else if (i === n) {
document.writeln("Recursion ends");
return true;
} else {
document.writeln("Confused" + typeof i + typeof n);
}
}