프로그래머스 코딩테스트 연습 1단계 '약수의 개수와 덧셈'
사실 이건 너무 쉬워서 정리라고하기도 뭐하니 가볍게 원리만 집고 넘어가자.
function solution(left, right) {
let answer = 0;
// 약수의 갯수 구하기
for(var i=left; i<=right; i++) {
let idx = 1;
let count = 0;
while (idx <= i){
if(i % idx == 0 ){
// 조건에 맞으면 양수의 갯수를 센다
count+= 1;
}
idx+= 1;
}
// 약수의 갯수 홀짝 판단
count % 2 == 0 ? answer+=i : answer -= i;
}
return answer;
}
result= solution(13, 17)
console.log(result)
약수는 어떻게 구하는지 원리만 알면 간단하다.
약수 % (1부터 약수-1까지의 숫자) == 0
즉, 약수와 약수보다 작은 양수의 숫자를 나눴을 때 나머지가 0이되면 된다.
for 문으로 left부터 right까지의 숫자를 돌리고,
while문으로 조건에 맞을 때까지 count(약수의 갯수)를 센다.
그리고 그 약수의 갯수가 짝수면 answer에 더하고 홀수면 빼면된다.