Language/C

[ C ] [ 반복문 연습 문제 ] 약수 합 출력 프로그램

곽수진 2021. 10. 13. 13:42
반응형
사용자에게 입력 받은 정수의 약수의 합을 출력하는 프로그램을 작성해보자.

 

while문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int hap = 0;
	int a;
	int n;

	printf("정수 입력 : ");
	scanf("%d", &n);

	a = 1;
	while (a <= n) {
		if (!(n % a))
			hap += a;
		a++;
	}

	printf("약수의 합 : %d\n", hap);


	return 0;
}

▶ 사용자가 입력할 정수는 변수 n, 반복문을 수행할 변수 a, 약수의 합을 구할 변수 hap 지정

▶ 1부터 사용자가 입력한 수까지 값을 하나씩 늘려가며 반복문을 수행

    → 사용자가 입력한 값이 a로 나누어 떨어지면 hap 변수에 a값을 더해줌

 

★ 다른 표현 ★ 

a=1; 
while(a<=n){
    a++;
    if (n % a) continue;
        hap += a;
}

 

▶ 반복문을 1부터 사용자가 입력한 수까지 값을 하나씩 늘려가도록 수행

    → 사용자가 입력한 값이 a로 나누어 떨어지지 않으면 continue로 다음 명령을 수행하지 않음

    → 사용자가 입력한 값이 a로 나누어 떨어지면 hap 변수에 a값을 더해줌

 

 

출력 결과 모습

 

 


 

 

for문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int hap = 0;
	int a;
	int n;

	printf("정수 입력 : ");
	scanf("%d", &n);

	for (a = 1; a <= n; a++) {
		if (!(n % a))
			hap += a;
	}

	printf("약수의 합 : %d\n", hap);

	return 0;
}

 

 

출력 결과 모습

 

 


 

 

do문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a;
	int n;
	int hap = 0;

	printf("정수 입력 : ");
	scanf("%d", &n);

	a = 1;
	do {
		if (!(n % a))
			hap += a;
		a++;
	} while (a <= n);

	printf("약수의 합 : %d\n", hap);


	return 0;
}

 

출력 결과 모습

반응형