코테/프로그래머스

[프로그래머스/Lv. 1] 약수의 개수와 덧셈

imname1am 2023. 2. 24. 13:21
반응형

🔺 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

🔺 코드

import java.util.*;

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


다른 정답도 보았다.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

제곱수인 경우, 약수의 갯수가 홀수인 점을 이용하셨다고 한다. 개쩌는 아이디어;; 이래서 수학을 잘 해야...

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;
    }
}
반응형