완전수

2024. 3. 12. 17:28정보처리,전산/코딩 : 문제해결

반응형

자신을 제외한 모든 양의 약수의 합이 자기 자신과 같은 수


test 함수는 주어진 숫자 n이 완전수인지 확인 
   - sum 변수를 초기화
   - 1부터 n의 절반까지 반복 n을 각 숫자로 나눈 나머지가 0인 경우에만 해당 숫자를 sum에 더함 이 과정을 통해 n의 약수들을 찾는다.
   - 반복이 끝나면 sum과 n이 같은지 확인하여 완전수인지를 판단

만약 같다면 1을 반환하고, 아니라면 0을 반환


main 함수에서는 2부터 100까지의 숫자를 반복하면서 test 함수를 호출하여 완전수인지 확인
   - 만약 test 함수가 1을 반환하면, 해당 숫자를 sum에 더함
   - 반복이 끝나면 sum을 출력

 2부터 100까지의 숫자 중 완전수들의 합을 출력

#include <stdio.h>
 
int test(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 (test(i))
        sum += i;
    }
    
    printf("%d ", sum); 
    return 0;
}
반응형