Certificate/정보처리기사 실기

2022년 3회 기출 13 - C언어

웨일파도 2024. 3. 27. 16:32
반응형
#include <stdio.h>

void main() {
    int i, j, s, el = 0;
    for (i = 6; i <= 30; i++) {
        s = 0;
        for (j = 1; j <= i / 2; j++) {
            if (i % j == 0) {
                s += j;
            }
        }
        if (s == i) {
            el++;
        }
    }
    printf("%d\n", el);
}

 

이 코드는 범위 6부터 30까지 완전수(perfect number)를 찾아내고, 그 개수를 출력합니다. 완전수란 자기 자신을 제외한 약수들의 합이 자신과 같은 수를 말합니다. 예를 들어, 6의 경우 1, 2, 3이 약수이며, 이 약수들의 합은 6이므로 6은 완전수입니다.

코드의 실행 과정은 다음과 같습니다:
1. 범위 6부터 30까지 각 수에 대해,
2. 해당 수의 절반까지를 반복하면서,
3. 만약 현재 수가 반복 변수로 나누어떨어진다면(즉, 약수라면),
4. 그 약수를 합에 더합니다.
5. 마지막으로, 그 합이 처음의 수와 같다면 완전수로 간주하고 `el`을 1 증가시킵니다.

범위 6부터 30까지에서 완전수는 다음과 같습니다:
- 6: 1 + 2 + 3 = 6
- 28: 1 + 2 + 4 + 7 + 14 = 28

따라서, 이 범위 내에는 두 개의 완전수가 있으므로, 프로그램은 `el` 값으로 2를 출력할 것입니다. 이 결과는 완전수의 정의와 주어진 범위에 따른 것입니다.

 

(GPT-4 답변)

반응형