본문 바로가기
프로그래밍/C | C++

[c언어] 약수 출력 프로그램(for문 사용)

by 청량리 물냉면 2020. 11. 9.
반응형
문제

사용자에게 특정 정수를 입력받아, 그 수의 약수를 출력하는 프로그램을 작성하여라.

 

 

실행화면

 

 

코드
#include <stdio.h>

int main() {
	int num;

	printf("자연수를 입력하시오: ");
	scanf_s("%d", &num);
	printf("%d의 약수: ",num);

	for (int i = 1; i <= num; i++) {
		if (num % i == 0) {
			printf("%d ", i);
		}
	}

}

 

 

코드 설명
for (int i = 1; i <= num; i++) {
		if (num % i == 0) {
			printf("%d ", i);
		}
	}

 

-> 약수의 특징을 알아야 한다.


약수: 정수 n을 0이 아닌 정수 d로 나누었을 때 나누어떨어지는 경우, 즉 몫이 정수이고 나머지가 0인 경우 d를 n의 약수라고 한다. d가 n의 약수이면 n은 d의 배수이다.

약수는 정수에 대한 인수로 정의되기도 한다.

 

[네이버 지식백과] 약수 (수학백과, 2015.5)


따라서 사용자에게 입력받은 수 num을 순차적으로 증가하는 i로 나누었을 때, 나머지가 0이 되면 그 수는 num의 약수(인수)이다.

따라서 나머지가 0이 될 때마다 나누는 수(i)를 출력해 주면 된다.

더보기

마무리(개인기록용)

코딩을 하면 할수록 수학적 지식의 필요성을 느낀다. 수학 공부 열심히 하자.

+)scanf_s("%d 이 부분에서 |n 입력하지 말자. 여기서 에러났다ㅜㅜㅜ

반응형