본문 바로가기
Algorithm/PROGRAMMERS[Java]

Lv1. 약수의 개수와 덧셈

by 씨니 2022. 4. 17.
728x90

▶ 문제

 

▶풀이방법

-내가 푼 방법

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        int count = 0;
        for(int i = left;  i <= right; i++){
            for(int j = 1; j <= i; j++){ //약수 구하기
                if(i % j == 0) count ++; //약수 개수세기
            }
            if(count % 2 == 0) answer += i;//약수 짝수인 경우 더해줌
            else answer -= i;//약수 홀수인 경우 뺴줌.
            count = 0;
        }
        
        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

'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글

Lv1. 폰켓몬  (0) 2022.04.20
Lv1. 실패율[카카오]  (0) 2022.04.18
Lv1. 3진법 뒤집기  (0) 2022.04.17
Lv1. 예산  (0) 2022.04.17
Lv1. 두 개 뽑아서 더하기  (0) 2022.04.17