付费节点推荐
免费节点
节点使用教程
[t]亲密数:满足整数A的因子(包括1,不包括自身)之和a1等于B,且B的因子(包括1,不包括自身)之和b1等于A,且A不等于B[/t]
#include <stdio.h>
void qms(long m); //计算亲密数函数int main()
{
long m;
printf("输入最大范围: ");
scanf("%ld",&m);
qms(m);return 0;
}
void qms(long m)
{long i,j,a,b,a1,b1;
// i,j 遍历参数
// a,b 表示整数A,B
// a1,b1 表示A和B的因子之和printf("亲密数:\n");
for(a=6;a<m;a++) //遍历6~m之间所有数,因为最小的亲密数为6
{a1=0; //每次初始化a1,b1为0
b1=0;
for(i=1;i<a/2+1;i++)
{
if(a%i==0)
a1+=i; //a1统计a的因子之和}
b=a1; //将a的因子之和赋给b
for(j=1;j<b/2+1;j++)
{
if(b%j==0)b1+=j; //b1统计b的因子之和
}if(b1==a&&a<b) //满足b的因子之和b1等于a,则输出a和b,a!=b ,并且为了消除重复,让a<b
printf("%ld----%ld\n",a,b);
}
printf("计算完成\n");return ;
}