알고리즘(Algorithm)/프로그래머스(Programmers)

[프로그래머스] 약수의 합 - JAVA

나아가는중 2021. 10. 29. 00:24
반응형

프로그래머스 약수의 합 - JAVA


문제 설명

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

제한 사항

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

문제 풀이

  1. 1부터 n/2까지 순회하며 약수를 찾는다.
    • n % i 가 0이라면 n의 약수이다.
    • n/2 까지만 하면 n을 제외한 모든 약수를 찾을 수 있다.
  2. 1에서 찾은 약수들의 합과 n을 더한 값을 return.

소스 코드

class Solution {
    public int solution(int n) {
        int answer = 0;

        for (int i = 1; i <= n / 2; i++) {
            if (n % i == 0) answer += i;
        }

        return answer + n;
    }
}
반응형