코딩테스트 & 문제 풀이

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

Hicecream 2023. 5. 3. 00:26

2022년 7월 15일에 작성됨

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 분석

정수 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. 모든 정수의 약수는 1부터 시작하므로 i의 초깃값 1로 시작

 

2. n을 i로 나눈 나머지가 0이면, i는 n의 약수

 

3. i의 누적합 answer을 구하고 반환

 

 

 

end

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