Certificate/정보처리기사 실기

2023년 3회 기출 04 - C언어

웨일파도 2024. 4. 3. 17:49
반응형
#include <stdio.h>
int perfect_number(int n) {
	int i, sum = 0;
	for (i=1; i<=n/2; i++) {
		if (n% i ==0)
			sum += i;
	}
	if (n==sum)
		return 1;
		
	return 0;
}

int main() {
	int i, sum=0;
	for (i=2; i<=100; i++) {
		if (perfect_number(i))
			sum += i;
	}
	printf("%d ", sum);
	
	return 0;
}

 

이 코드는 주어진 범위 내에서 완전수(perfect number)를 찾고, 그 완전수들의 합을 계산하여 출력하는 프로그램입니다. 완전수란 자기 자신을 제외한 양의 약수들을 모두 더한 값이 자신과 같은 수를 말합니다. 예를 들어, 6의 양의 약수는 1, 2, 3이며, 이를 모두 더하면 6이 되므로 6은 완전수입니다.

 

코드의 perfect_number 함수는 주어진 정수 n이 완전수인지 아닌지를 판별합니다. 이 함수는 1부터 n/2까지의 모든 정수에 대해 n을 나누어 떨어지게 하는지 확인하고(즉, 약수인지 확인하고), 그 약수들을 모두 더합니다. 만약 그 합이 n과 같다면, 그 수는 완전수이므로 1을 반환합니다. 그렇지 않으면 0을 반환합니다.

 

main 함수에서는 2부터 100까지 모든 수에 대해 perfect_number 함수를 호출하여 완전수인지 확인하고, 완전수라면 그 값을 sum에 더합니다. 마지막으로 모든 완전수의 합인 sum을 출력합니다.

 

1부터 100 사이의 완전수는 6과 28 두 개입니다. 따라서 이 프로그램은 두 완전수의 합인 34를 출력할 것입니다

반응형