[20231108] Lv 1. 약수의 합

일단 기록하기·2023년 11월 25일

프로그래머스 - 약수의 합

정수 n의 약수를 모두 더한 값을 구하는 문제이다.

[나의 풀이]

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

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

        return sum;
    }
}
  • for문을 사용해서 1부터 n까지의 숫자를 반복하여 n의 약수인지 확인한다.
  • 약수는 자연수이므로 for문 i의 초기값은 1로 세팅한다.
  • for문을 수행할 때마다 n을 i로 나눴을 때 나머지가 0이면 변수 sum 에 누적합산한다.

[참고]

약수 구하는 방법

  1. 1부터 n까지 숫자를 나눠서 0인지 판별
  2. 약수는 n을 제외하고 n/2보다 클 수 없기 때문에 n/2까지만 판별
  3. 제곱근 사용하기
    • 2번의 방법처럼 n의 제곱근까지의 약수는 n의 약수 절반의 개수이다.
    • n의 제곱근까지 판별하면 된다.
profile
모르는 건 일단 기록이라도 해놔야

0개의 댓글