Algorithm

11.17.(목) Programmers Java Lv1 약수의 개수와 덧셈

콜라든포비 2022. 11. 17. 22:23

약수의 개수와 덧셈

문제 설명

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

 

제한 조건

  • 1 ≤ left  right ≤ 1,000

입력값

left : 13, 24

right : 17, 27

result : 43, 52

 

Solution

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        for(int i=left; i<=right; i++){
            boolean sqrt = false;
            if((double)Math.sqrt(i)%1==0){
                sqrt = true;
            }
            answer = sqrt? answer-i : answer+i;
        }
        return answer;
    }
}

약수의 개수가 홀수라는건 정수제곱근을 갖는다는 의미이므로 정수제곱근을 가지면 answer에서 그 숫자를 빼고, 없다면 그 숫자를 더했다.