코딩테스트/알고리즘
[알고리즘] 프로그래머스 | Lv1 | 약수의 개수와 덧셈
예린_dev
2023. 8. 21. 21:43
class Solution {
public int solution(int left, int right) {
int answer = 0;
// left부터 right까지의 모든 수의 개수
int num = right - left + 1;
// left ~ right
for(int i=0; i<num; i++){
int tmp = left + i; //수
int cnt = 0; //약수의 개수
for(int j=1; j<=tmp; j++){
if(tmp % j == 0) cnt++; //약수이면 ++
}
if(cnt % 2 == 0){ //약수의 개수가 짝수인 수는 더하고
answer = answer + tmp;
} else{ //약수의 개수가 홀수인 수는 빼기
answer = answer - tmp;
}
}
return answer;
}
}
문제를 보고 최대공약수 문제인줄 알고 헤맸다ㅎ
단순하게 주어진 두 수와 두 사이의 수의 약수의 개수를 구하고
해당 수의 약수의 개수가 짝수이면 더하기, 홀수이면 빼기를 하면 되는 쉬운 문제였다.
반응형