亲密数

问题描述:

如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

代码实现

#include<stdio.h>
int main()
{
	int a,b,i,j,c;
	for(a=1;a<3000;a++)//	穷举a
	{
		b=0;
		for(i=1;i<=a/2;i++)
			if(a%i==0)
				b+=i;//	b=a的因子和
		c=0;
		for(j=1;j<=b/2;j++)
			if(b%j==0)
				c+=j;//	c=b的因子和
		if(a==c&&a<b)//	排除重复
			printf("%d和%d为亲密数\n",a,b);
	}
	return 0;
}


posted @ 2023-05-11 20:05  笠大  阅读(23)  评论(0编辑  收藏  举报