- ·上一篇文章:c语言魔术师发牌问题(循环链表)
- ·下一篇文章:计算任意一个日期是星期几
c语言求亲密树对
-->
[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 ;
}?
c语言求亲密树对