Algorithm/프로그래머스

[알고리즘] 약수의 개수와 덧셈 Java

rw- 2024. 2. 21. 18:28
728x90

 

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        for (int j = left; j <= right; j++) {
           int count = 0;

          for (int i = 1; i * i <= j; i++) {
            if (i * i == j) {
              count++;
            } else if (j % i == 0) {
              count+=2;
            }
          }

          if(count % 2 == 0) {
            answer += j;
          } else {
            answer -= j;
          }
        }
        
        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;
    }
}
728x90
반응형