두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
입출력 예 #1
입출력 예 #2
function solution(left, right){
let result = 0;
for(let i = 0; i <= right; i++){
if(Number.isInteger(Math.sqrt(i))){
result -= i;
} else {
result += i;
}
}
return result;
}
문제를 풀기 전 제곱근이 정수면 약수의 개수가 홀수이고, 제곱근의 정수가 아니면 약수의 개수가 짝수라는 개념을 알고 풀어야 합니다.
제곱근을 구할 때 Number.isInteger(Math.sqrt) 사용해 정수인지 아닌지 우선적으로 파악했습니다.
약수의 개수가 홀수라면 i 값을 빼주고, 짝수라면 더해줬습니다.