“亲密数对”
如果说n和m是一个亲密数对,那么它们必须满足以下条件
1. n的全部因子之和(不包括n)必须等于m
2. m的全部因子之和(不包括m)必须等于n
例如:
220的全部因子之和为:
1+2+4+5+10+11+20+22+44+55+110=284
284的全部因子之和为:
1+2+4+71+142=220
所以220和284是一对个亲密数对,输出格式:220->284
/*---------------------------------------------------------
【程序设计】“亲密数对”是指两个整数A和B,A的所有因子(包含1但不包含其本身)之和
等于B,且B的所有因子(包含1但不包含其本身)之和等于A。
运行结果如下:
[220,284]
[1184,1210]
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在
Program-End之间填入若干语句。不要删除标志否则不得分。
---------------------------------------------------------*/
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>
int fun(int n)
{
int i,sum=0;
/**********Program**********/
for (i = 1; i <= n/2; i++)
{
if (n % i == 0)
{
sum += i;
}
}
/********** End **********/
return sum;
}
int main()
{
int a,b,n;
for(a=200;a<=2000;a++)
{
b=fun(a);
if(fun(b)==a&&a<b)
printf("[%d,%d]\n",a,b);
}
return 0;
}