完全数:对于一个自然数,所有比它小的所有因数之和,等于它本身,它就是个完全数。如 求正整数 2 和 n 之间的完全数_完全数。完全数要去掉和自己相等的数例如完全数6就要去掉6这个因数

因数是指:除数能将被除数整除的除数,例如被除数6能被1,2,3,6整除,不能被4,5整除,那么1,2,3,6就是6的因数。

具体代码如下:

#include <stdio.h>

int main()

{

   int i = 0;

   int n = 0;

   

   scanf("%d", &n);


   for (i = 2; i <= n; i++)//先得出2~n之间的数

   {

       int sum = 0;//设置初始sum必须要在for的里面,设置在外面的话每次循环一个i,sum的值会一直加不会被归零导致后面sum不等与i

       int a = 1;

       for (a = 1; a < i; a++)//求1~n-1之间的自然数

       {

           if (i % a == 0)

           {


               sum = sum + a;//使个个符合条件的a相加起来


           }

       }

       if (sum == i)

       {

           printf("%d\n", i);


       }



       

   }

   return 0;

}