본문 바로가기

Algorithm/프로그래머스

프로그래머스 월간 코드 첼린지 시즌2 약수의 개수와 덧셈

문제  두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

package ch.programmers;
/*
코딩테스트 연습
월간 코드 챌린지 시즌2
약수의 개수와 덧셈
 */
public class Algorithm13 {
    class Solution {
        public int solution(int left, int right) {
            int answer = 0;
            int chk;
            for(int i = left; i <= right; i ++){
                chk = 0;
                for(int j = 1 ; j <= i; j++){
                    if(i % j == 0){
                        chk++;
                    }
                }
                if(chk % 2 == 0){
                    answer += i;
                }else if(chk % 2 == 1){
                    answer -= i;
                }
            }
            return answer;
        }
    }
}