반응형
문제
사용자에게 특정 정수를 입력받아, 그 수의 약수를 출력하는 프로그램을 작성하여라.
실행화면
코드
#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 입력하지 말자. 여기서 에러났다ㅜㅜㅜ
반응형
'프로그래밍 > C | C++' 카테고리의 다른 글
[c언어]3/6/9게임 출력 프로그램 (두가지 방법) (0) | 2020.11.09 |
---|---|
[c언어]입력받은 수만큼 숫자가 증가하는 프로그램(이중for문) (0) | 2020.11.09 |
[c언어]배열: 입력받은 숫자를 거꾸로 출력 (0) | 2020.11.09 |
[c언어]배열: 최대/최솟값 출력 (0) | 2020.11.09 |
[c언어]배열: 짝수의 개수 출력 (0) | 2020.11.09 |