알고리즘

[프로그래머스] 약수의 개수와 덧셈(Java)

muerha 2024. 11. 17. 23:41

 

 

 

 


 

 

나의 풀이

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        for(int x = left; x <= right; x++){
            int num = 0;
            for(int y = 1; y <= x ; y++){
                if( x % y == 0){
                    num++;
                }
            }
            if (num % 2 == 0) { 
                answer += x;
            } else { 
                answer -= x;
            }
        }

        return answer;
    }
}

 

변수 초기화 위치 잘 생각하기..

 

 

 

 

다른 사람의 풀이

class Solution {
    public int solution(int left, int right) {
        int answer = 0;

        for (int i=left;i<=right;i++) {
            //제곱수인 경우 약수의 개수가 홀수
            if (i % Math.sqrt(i) == 0) {
                answer -= i;
            }
            //제곱수가 아닌 경우 약수의 개수가 짝수
            else {
                answer += i;
            }
        }

        return answer;
    }
}