[プログラマー]約数の和


🤔 質問する
プログラマ-約数の和
整数nを受け入れ、nのすべての約数加算値を返す関数は、解を完了してください.
¥2,000円制限
nは3000以下の整数である.
💡 に近づくsolution1は、1からnまでの整数をループし、nをiで割った残数が0のiを求め、reduce()を用いて配列中の各要素の総和を計算した.solution2複文を行う場合、if文の条件を満たすiをsum変数に直接加算する.
🧑🏻‍💻 コード#コード#
// solution 1
function solution(n) {
  const factor = [];
  for (let i = 0; i <= n; i++) {
    if (n % i === 0) factor.push(i);
  }
  const sum = factor.reduce((a, b) => a + b, 0);
  return sum;
}

// solution 2
function solution(n) {
  let sum = 0;
  for (let i = 0; i <= n; i++) {
    if (n % i === 0) sum += i;
  }
  console.log(sum);
  return sum;
}

solution(12) // 28
solution(0) // 0