如果a的所有正因子和等于b,b的所有正因子和等于a,因子包括1但不包括本身,且a不等于b,则称a,b为亲密数对。一般通过迭代编程求出相应的亲密数对。
#include<stdio.h>
int factorSum(int x)
{
int sum = 0;
int i;
for(i=1;i<x;i++){
if(x%i==0)sum+=i;
//将参数传过来的数的所有正因数累加起来,用下主函数进行判断 不包括参数本身!
}
return sum;
}
int main()
{
int n,i,j,ifsum;
scanf("%d", &n);//确认范围值
for(i=1;i<=n;i++){
ifsum = factorSum(i);//拟定一个变量来预存第一个数用来和剩下所有数进行比较
for(j=i+1;j<=n;j++){
if(ifsum == j&&factorSum(j)==i)// 亲密对数要其中一个数(的因子)和要和另一个数一致,是因子和数一致
//例如因(a)=b,因(b)=a;才能满足两个数是亲密对数
printf("%d<-->%d\n",i,j);
}
}
return 0;
}