약수의 개수와 덧셈

채종윤·2023년 8월 16일
0

📔 문제 설명

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


📝 문제 풀이

1. N의 절반까지만 구하면 약수 절반의 개수를 알 수 있다

 for (int i = 1; i * i <= result[j]; i++)

2.따라서 x2를 해주면 되고

(result[j] % i == 0) count += 2

3.√N의 경우 제곱근이므로 1개만 카운트한다

(i * i == result[j]) count++;

💡 내 코드

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
      
        int start= left;
        int[] result = new int[right-left+1];
        for(int i =0; i<right-left+1;i++){
            result[i]=start;
            start++;
        }
        
        for(int j =0; j < right-left+1; j++){
            int count =0;
            for (int i = 1; i * i <= result[j]; i++) {
	            if (i * i == result[j]) count++;
	            else if (result[j] % i == 0) count += 2;
            }
            if(count%2==0){
                answer += result[j];
            }
            else{
                answer += result[j]*(-1);
            }
            System.out.println(answer);
        }
        return answer;
        
    }
}
profile
안녕하세요. 백앤드 개발자를 목표로 하고 있습니다!

0개의 댓글