[プログラマー]約数の個数と加算


##問題の説明
パラメータは2つの整数leftとrightです.左から右までのすべての数でsolution関数を完了し、約数の個数に偶数因数を加え、約数の個数に奇数因数を加えて減算数を返します.

せいげんじょうけん


1 ≤ left ≤ right ≤ 1,000

I/O例


left right result
13 17 43
24 27 52

I/O例1


I/O例#1
次の表に、13から17までのすべての数値の合計を示します.
に水を飲ませる
13 1, 13 2
14 1, 2, 7, 14 4
15 1, 3, 5, 15 4
16 1, 2, 4, 8, 16 5
17 1, 17 2
したがって、13+14+15-16+17=43を返さなければなりません.
答え:
function solution(left, right) {
    var answer = 0;
    for(let i = left; i <= right; i++) {
    // Math.sqrt() 함수를 통해 i의 제곱근을 반환하고, 반환된 값을 Number.isInteger() 
    // 함수를 통해서 정수인지 판단한다.
        if(Number.isInteger(Math.sqrt(i))){
            answer -= i; //answer = answer - i
        } else {
            answer += i; // answer = answer + i
        }
    }
    return answer;
}
  • 平方根が整数の場合、小数の
  • Math.sqrt():平方根
  • を返します.
  • Number.isInteger():整数
  • かどうかを判断