C 언어 약수 구하기 문제

  • 2 minutes to read

약수 구하기

표준 입력으로 한 개의 정수를 입력 받습니다. 1부터 입력 받은 정수까지 반복하면서 입력 받은 정수의 약수를 출력하는 프로그램을 만드세요.

테스트 케이스 예제

표준 입력

10

표준 출력

 1은(는) 10의 약수입니다.
 2은(는) 10의 약수입니다.
 5은(는) 10의 약수입니다.
10은(는) 10의 약수입니다.

divisor_docs.c

#define _CRT_SECURE_NO_WARNINGS // scanf() 보안 경고에 따른 컴파일 에러 방지
#include <stdio.h>

int main(void)
{
    int divisor;

    scanf("%d", &divisor);

    for (int i = 1; i <= divisor; i++)
    {
        if (divisor % i == 0)
        {
            printf("%2d은(는) %2d의 약수입니다.\n", i, divisor);
        }
    }

    return 0;
}
12
 1은(는) 12의 약수입니다.
 2은(는) 12의 약수입니다.
 3은(는) 12의 약수입니다.
 4은(는) 12의 약수입니다.
 6은(는) 12의 약수입니다.
12은(는) 12의 약수입니다.
15
 1은(는) 15의 약수입니다.
 3은(는) 15의 약수입니다.
 5은(는) 15의 약수입니다.
15은(는) 15의 약수입니다.

나머지 연산자인 % 연산자를 사용하면 특정한 수의 약수를 구할 수 있습니다. 1부터 입력한 수까지 반복을 하면서 인덱스 변수를 나누었을 때 나머지가 0이면 즉, 나누어 떨어지면 해당 인덱스 변수는 입력한 수의 약수가 됩니다.

이처럼 % 연산자를 사용하면 배수, 약수, 공배수 등을 편리하게 구할 수 있습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com