두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
입출력 예
function solution(left, right) {
function count(n){
var check = 0;
for(let i=1; i<=n; i++){
if(n%i===0) check++;
}
return check;
}
var sum=0;
for(var i=left; i<=right; i++){
if(count(i)%2===0){
sum += i;
}
else{
sum -= i;
}
}
return sum;
}
약수 판별 함수 count를 따로 만들어주고 left부터 right까지 해당 함수에 수를 집어넣어
약수의 갯수를 리턴받아 약수의 갯수가 홀수인지 짝수인지 판별하여
변수 sum에 총 계산하였다.
하지만 다른사람의 풀이를 보니 제곱근이 정수면 약수의 개수가 홀수인것을 배웠다..
왜냐면 어떤 수의 제곱근은 그 수의 약수들의 중간값인데 그 제곱근이 정수란 얘기는
약수로서존재한다는 이야기고 약수의 갯수가 홀수개란 이야기.