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

Alal11·2022년 7월 15일
1
post-thumbnail

출처

https://school.programmers.co.kr/learn/courses/30/lessons/12928


문제 설명

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


제한 사항

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

입출력 예

nreturn
1228
56

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

  • 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

➡️문제 분석

정수 n의 모든 약수의 합 구하기 (1과 자기 자신 포함)


➡️코드(⭕)

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

int solution(int n) {		// 사용자 정의 함수 선언

    int answer = 0;		// 누적합 변수 0으로 초기화

    for (int i = 1; i <= n; i++) {
        if (n % i == 0) {		// 나머지가 0이면 약수이다
            answer += i;		// 약수의 합 구하기
        }
    }
    return answer;
}

➡️코드 분석

  • 모든 정수의 약수는 1부터 시작하므로 i의 초깃값 1로 시작
  • n을 i로 나눈 나머지가 0이면, i는 n의 약수
  • i의 누적합 answer을 구하고 반환

➡️end

for문과 if문을 이용하여 어렵지 않게 풀 수 있었던 문제였다.

0개의 댓글