본문 바로가기
프로그래머스/C

[프로그래머스/C]프로그래머스 Level 1 : 약수의 합 C언어

by starfish22 2021. 12. 18.
728x90

▶문제 : 코딩 테스트 연습 - 약수의 합 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 약수의 합

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수

programmers.co.kr

 

▶코드 해석

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

int solution(int n)
{
    int answer = 0;
    for (int i = 1; i <= n / 2; i++)//i=1부터 입력한 수의 반값까지 i++
    {
        if (n % i == 0)//입력한 수가 i로 나누어 떨어질 때
        {
            answer += i;//약수이므로 더한다
        }
    }
    return answer + n;//자기자신도 약수에서 포함시켜준다
}

 

▶해석

반복문으로 i=1부터 n/2까지 i++해주고 n을 i로 나누어 떨어지는 i값이 약수이므로 반복적으로 더해준다. 리턴할 때 자기 자신도 약수이므로 더해준다.

728x90

댓글