끄적끄적 코딩일지

[Programmers]약수의 개수와 덧셈(난이도:★★★★) 본문

알고리즘

[Programmers]약수의 개수와 덧셈(난이도:★★★★)

BaekGyuHyeon 2022. 5. 16. 20:32

https://programmers.co.kr/learn/courses/30/lessons/77884

 

코딩테스트 연습 - 약수의 개수와 덧셈

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

programmers.co.kr

class Solution {
    public int solution(int left, int right) {
        return solutionA(left,right);
    }
    public int solutionA(int left, int right){
        int sum = 0;
        for(int i = left; i < right+1; i++){
            int count = 2;
            if( i == 1)
                count--;
             // 약수 개수 구하기
            for(int j = 2; j < i; j++){
                if(i % j == 0)
                    count++;
            }
            if(count % 2 == 0)
                sum+= i;
            else
                sum-= i;
        }
        return sum;
    }
}