반응형
사용자에게 입력받은 양수의 약수를 출력하는 프로그램을 작성해보자.
do문 ver.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void) {
int a;
int num;
int cnt=0;
printf("어떤 수의 약수를 구할까요? ");
scanf("%d", &num);
a = num;
do {
if (!(num % a)) {
printf("%d ", a);
cnt++;
}
a--;
} while (a>0);
printf("\n약수 개수 %d\n", cnt);
if (cnt <= 2)
printf("\n소수입니다.");
return 0;
}
▶ 사용자에게 입력받는 수는 변수 num, 반복문을 수행할 변수는 a, 약수의 개수를 출력할 변수는 cnt로 지정
▶ int cnt = 0 : 약수의 개수를 출력하는 변수는 처음에 0으로 초기화
▶ 반복문(변수 a)은 사용자가 입력한 수를 시작으로 0보다 클 때까지 값을 하나씩 줄여가며 수행함
→ 약수를 큰 수부터 나열하기 위함
→ 약수를 작은 수(1)부터 출력하려면 다음과 같이 변경
초기값 : a = 1;
조건문 : a <= num;
제어값 : a++;
▶ 사용자가 입력한 수를 a값으로 나누었을 때 0으로 나누어 떨어지면 그 값을 출력하고 cnt 값을 1 늘려줌
▶ if (cnt <= 2) : cnt값이 2보다 작을 경우에는 소수이므로 '소수입니다.' 출력
→ 소수 : 1과 자기 자신만을 약수로 가지는 값
for문 ver.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void) {
int a;
int num;
int cnt=0;
printf("어떤 수의 약수를 구할까요? ");
scanf("%d", &num);
for (a = num; a > 0; a--)
if (num % a == 0) {
printf("%d ", a);
cnt++;
}
printf("\n약수 개수 %d\n", cnt);
if (cnt <= 2)
printf("\n소수입니다.");
return 0;
}
while문 ver.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void) {
int a;
int num;
int cnt = 0;
printf("어떤 수의 약수를 구할까요? ");
scanf("%d", &num);
a = num;
while (a>0)
{
if (num % a == 0) {
printf("%d ", a);
cnt++;
}
a--;
}
printf("\n약수의 개수 %d\n", cnt);
if (cnt <= 2)
printf("\n소수입니다.\n");
return 0;
}
반응형
'Language > C' 카테고리의 다른 글
[ C ] [ 반복문 연습 문제 ] 정수 개수 출력 프로그램 (0) | 2021.10.13 |
---|---|
[ C ] [ 반복문 연습 문제 ] 배수 출력 프로그램 (0) | 2021.10.13 |
[ C ] [ 반복문 연습 문제 ] 배수 합 출력 프로그램 (0) | 2021.10.13 |
[ C ] [ 반복문 연습 문제 ] 실수 합 프로그램 (0) | 2021.10.12 |
[ C ] [ 반복문 연습 문제 ] 1과 100까지의 합 출력 프로그램 (0) | 2021.10.12 |