알고리즘, 코딩테스트

[프로그래머스/ 코딩테스트 월간코드챌린지 시즌2] 약수의 개수와 덧셈

jy3574 2024. 11. 13. 12:12

Q. 약수의 개수와 덧셈

A.

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
//left에서 right 사이의 모든 수를 i에 대입해서 사용
        for(int i=left; i<=right; i++){
//약수의 개수를 세야하니까 count를 선언해서 사용
            int count = 0;
            
//약수 개수 구하기
//1부터 i까지 1씩 증가하면서 나눠서 나머지가 0이면 약수
//약수일 경우 count를 증가시킴
            for(int j=1; j<=i; j++){
                if(i%j == 0){
                    count++;
                }
            }
            
//위에서 구한 count가 짝수일 경우 answer에 +
//count가 홀수일 경우 answer에 - 
            if(count%2 == 0){
                answer += i;
            }else{
                answer -= i;
            }
        }
        return answer;
    }
}