결과 출력
이 마지막 단계에서는 완전수에 대한 더 자세한 출력, 즉 약수와 합을 포함하여 프로그램을 개선합니다.
파일을 열고 코드를 업데이트합니다.
nano ~/project/perfect_number.c
이전 코드를 다음 코드로 바꿉니다.
#include <stdio.h>
int main() {
int number, sum = 0;
// 사용자에게 입력을 요청합니다.
printf("완전수인지 확인할 양의 정수를 입력하세요: ");
scanf("%d", &number);
// 약수 출력을 위한 헤더 출력
printf("%d의 진약수: ", number);
// 진약수의 합을 계산하고 출력합니다.
for (int i = 1; i < number; i++) {
if (number % i == 0) {
printf("%d ", i);
sum += i;
}
}
// 자세한 결과 출력
printf("\n\n진약수의 합: %d", sum);
// 완전수 여부를 확인하고 출력합니다.
if (sum == number) {
printf("\n%d는 완전수입니다!\n", number);
} else {
printf("\n%d는 완전수가 아닙니다.\n", number);
}
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc perfect_number.c -o perfect_number
./perfect_number
완전수 (28) 에 대한 예시 출력:
완전수인지 확인할 양의 정수를 입력하세요: 28
28의 진약수: 1 2 4 7 14
진약수의 합: 28
28는 완전수입니다!
완전수가 아닌 경우 (12) 에 대한 예시 출력:
완전수인지 확인할 양의 정수를 입력하세요: 12
12의 진약수: 1 2 3 4 6
진약수의 합: 16
12는 완전수가 아닙니다.
주요 개선 사항:
- 이제 모든 진약수를 출력합니다.
- 진약수의 합을 표시합니다.
- 명확하고 정형화된 출력을 제공합니다.
- 완전수 감지의 핵심 논리를 유지합니다.