본문 바로가기

C

[C언어] 실습: 자연수의 약수를 구한 후, 그 자연수와 같은 약수를 제외한 나머지 약수들의 합이 자연수와 같아지는 자연수 구하기

반응형

4~1,000 사이 자연수의 약수를 구한 후, 그 자연수와 같은 약수를 제외한 나머지 약수들의 합이 자연수와 같아지는 자연수 구하기

예)

6의 약수는 1, 2, 3, 6이다.

네 개의 약수 중 자연수 6과 같은 약수인 6을 제외한 1, 2, 3의 합을 구하면 6이 된다.

이때 약수의 합과 자연수의 값이 같으면 출력한다.


#include<stdio.h>

int main(){
   int sum = 0;

   for(int i = 4; i <= 1000; i++){
      sum = 0;                      // 각각의 자연수마다 합을 구하여야 하기 때문에 sum을 계속 0으로 초기화 해준다.
      for(int j = 1; j < i; j++){   // 하나의 자연수에 대한 약수를 구하기 위한 for 문이다.
         if(i % j == 0){            // i를 j로 나누었을 때 나머지가 0이면, j는 i의 약수가 된다.
            sum += j;
         }
      }
      if(sum == i)
         printf("%5d", i);
   }

   printf("\n");

   return 0;
}

 

반응형