프로그래머스 - LV1. 약수의 개수와 덧셈

김소정·2022년 3월 2일
0

프로그래머스

목록 보기
35/35

❔ 문제

❗ 내 풀이

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        while(left <= right){
            int cnt = 0;
            for(int i = 1; i <= left; i++){
                if(left % i == 0){
                    cnt++;
                }
            }
            
            if(cnt % 2 == 0){
                answer += left;    
            }else{
                answer -= left;
            }
            
            left++;
        } 
        return answer;
    }
}

🚩참고 (다른 풀이)

1. 
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;
    }
}

📝 정리

💬 제곱수인 경우 약수의 개수가 홀수 -> Math.sqrt(i) = 0이다.


profile
개발자 가보자고

0개의 댓글

관련 채용 정보