Skip to content

Latest commit

 

History

History
executable file
·
43 lines (30 loc) · 1.07 KB

sumOfAbbreviation.md

File metadata and controls

executable file
·
43 lines (30 loc) · 1.07 KB

약수의 합

📌 문제 설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

제한 조건

  • n은 0 이상 3000이하인 정수입니다.

입출력 예

n return
12 28
5 6

🧐 접근

약수는 쌍으로 구성되어 있기 때문에 제곱근을 이용해 풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        for (int i = 1; i * i <= n; i++) {
            if (n % i == 0) {
                answer += i;
                if (i * i != n) answer += n / i;
            }
        }
        return answer;
    }
}

💡 풀이

반복문을 수행하는데 제곱근을 이용해서 수행한다. n을 i로 나머지 연산을 수행했을 때 나머지가 0이라면 해당 값은 약수에 해당하므로 answer에 더해주고, 해당 i값의 제곱이 n이 아니라면 쌍으로 구성된 약수 이므로 n을 i로 나눈 몫값을 answer에 더해준다.

📘 그 외의 풀이

=================