试图找出一个函数来检查一个数字是否为素数并且我遇到了麻烦.我确定有一种更简单的方法可以做到这一点,但为什么这个函数不会返回false,对于数字9?它为偶数返回false,但对于任何其他类型的复合数,它返回undefined,但由于它打印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);
}
}
Run Code Online (Sandbox Code Playgroud) javascript ×1