我有以下练习代码,我试图计算 1-10 中所有因递归而崩溃的素数之和。
我的 for 和 while 循环有问题,因为代码似乎没有循环通过我的var i,并且卡在i = 3的初始分配上。
我不是在寻找正确的答案或最有效的答案,但我正在寻找帮助我理解问题所在的人。
这是代码:
var array = [2];
var total = 0;
var j = 0;
function isPrime(i, j) {
if ( i%array[j] === 0 ) {
console.log("i was " + i + " and j was " + j);
console.log(i + " is not a prime");
j = array.length;
}
else if ((j + 1) === array.length) {
console.log(i + " is a prime");
total += i;
console.log("total so far is " + total);
array.push(i);
console.log(array);
j = array.length;
console.log(j);
}
else {
j++;
isPrime(i,j);
}
}
for(var i = 3; i <=10; i++) {
while(j < array.length) {
console.log("i is " + i + " and j is " +j);
isPrime(i, j);
}
}
console.log(total);
console.log(array);