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

Choi Seong Jin·2022년 11월 23일
0

프로그래머스

목록 보기
16/33

문제 링크 : 약수의 합

문제 설명

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

제한 사항

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


내 풀이

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

간단한 문제이다. 1부터 n까지 반복문을 돌면서 나누어 떨어지는 수를 더해서 반환한다.

다른 사람들의 풀이를 보니 n까지 도는 것이 아니라 n/2까지만 반복하고, 마지막에 n을 더해주는 방식으로 반복문의 횟수를 줄인다. - 약수가 2가 포함되어 있으면 n을 제외한 가장 큰 약수는 n/2이고, 3, 4로 갈수록 더 작아지기 때문

profile
백엔드 개발자 지망생입니다!

0개의 댓글