Java/알고리즘

약수의 개수와 덧셈

티코딩 2024. 1. 24. 14:55

 

간단하다 역시. left = 13, right = 17 일때,

13부터 17까지 돌고, 각 수의 약수를 구하고 그걸 세주고 그게 홀수인지 짝수인지 검증하면 끝.

public int solution(int left, int right) {
       int answer = 0;
        int cnt = 0;
        for(int i = left; i <= right; i++){
            cnt = 0;
            for(int j = i; j >=1; j--){
                if(i % j == 0){
                    cnt++;
                }
            }
            if(cnt % 2 == 0){
                answer += i;
            }else{
                answer -= i;
            }
        }
        return answer;
    }

처음에 헷갈렸던 부분이 cnt++ 해주고 i가 바뀔때마다 cnt를 0으로 초기화해주는걸 깜빡했다. cnt를 0으로 초기화해줘야 각수의 약수가 짝수인지 홀수인지 알 수 있다.