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


問題の説明


整数nを受け入れ、nのすべての約数加算値を返す関数は、解を完了してください.

I/O例


  • 12の約数は1、2、3、4、6、12である.合わせて28です.
  • 5の約数は1、5です.これらを合わせると6です.
  • 私の答え方

    function solution(n) {
      let answer = 0;
      
      for(let i = 1; i <= n; i++) {
        if (n % i === 0) answer += i
      }
      
      return answer;
    }
    
    console.log(solution(5))
  • forゲートがi値を巡回した後、n % i === 0は約数であり、回答すべきである.
  • もう一つの解法

    function solution(n) {
      return Array(n).fill().map((v, i) => i + 1).reduce((a, c) => n % c ? a : a + c, 0)
    }
  • Array fill mapの組み合わせは、[1,2,3,...,n]に数値を作成する方法である.
  • 通常range関数は、他のライブラリに多数存在する.
  • n % c ? a : a + cこの部分の意味は、点数がついたら加点し、点数がつかないまま以前の値をそのまま移すこと