求1到300中的所有互满数,即是两个数除了它各自本身外的所有的因数相加的和都等于对方

来源:互联网 发布:cms傻瓜式建站系统 编辑:程序博客网 时间:2024/05/19 06:48

#include <stdio.h>

int hms(int a);

int main(int argc,const char * argv[])

{

   int i,j;

   for (i=1; i<300; i++)

       for (j=1; j<300; j++)

           if ((hms(i)==j)&&(hms(j)==i)&&i!=j)

            {

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

            }

    

    

   return 0;

}


int hms(int a)

{

   int i;

   int s=0;

   for (i=1; i<a; i++)

    {

       if (a%i==0)

        {

            s+=i;

        }

    }

   return s;