본문 바로가기
코딩테스트/프로그래머스

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

by java나유 2022. 10. 25.

문제 설명

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

제한 사항
  • n은 0 이상 3000이하인 정수입니다.
입출력 예nreturn
12 28
5 6
입출력 예 설명

입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.

입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

 

나의 코드:

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

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

풀이:

약수는 나누었을 때 나머지가 0이 되는 숫자이다. 예를들어 4의 약수는 1,2,4이다.

일단, 반복문을 1부터 n까지 돌린다.

그리고 n을 1 2, 3, 4, (만약 n이 4라면) 으로 나누었을 때 나머지가 0 즉, 나머지가 없는 수를 더하면된다.

 

결과:

 

728x90

댓글