ProperDivisors使用For循环当前代码中断Chrome

时间:2018-05-09 21:08:38

标签: javascript

我正在尝试编写一个函数来查看正整数N的所有可能除数,并返回这些除数的总和,但不返回数字本身。

该函数应该返回的例子:

sumofProperDivisors(6) - > 6 sumofProperDivisors(12) - > 1 + 2 + 3 + 4 + 6 = 16

function sumofProperDivisors(n){
  var i = n;
  var b = 0;
  for (; i > 0;);
    if (n % i >= 2) {
      b = b + i;
      i--;
    }
    else i--;
return (b);
}

1 个答案:

答案 0 :(得分:0)

由于第4行for循环结束处的分号;,您有一个无限循环。删除它并执行。它仍然不会给你预期的结果,因为逻辑也需要一些调整。

function sumofProperDivisors(n) {
  var i = n;
  var b = 0;
  for (; i > 0; i--) {
    if (n % i === 0 && n !== i) {
      b = b + i;
    }
  }
  return (b);
}

console.log(sumofProperDivisors(6));