5.12
一、问题描述:
如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
二、设计思路:
1、首先定义变量 a,并为其赋初值为某个整数。则按照亲密数定义,要判断α中存放的整数是否有亲密数,只要计算出该整数的全部因子的累加和,并将该累加和存放到另一个变量b中,此时b中存放的也是一个整数。
2、再计算b中存放整数的全部因子的累加和,将该累加和存放到变量n中。、首先定义变量a,并为其赋初值为某个整数.则按照亲密数定义,要判断α中存放的整数是否有亲密数,只要计算出该整数的全部因子的累加和,并将该累加和存放到另一个变量b中,此时b中存放的也是一个整数.再计算b中存放整数的全部因子的累加和,将该累加和存放到变量n中.
三、程序流程图:

四、代码示例:
#include<stdio.h>
int main()
{
int A;
int sum;
int B;
int n;
scanf("%d",&A);
int i,j;
for(j=0;j<A;j++)
{
for(sum=0,i=1;i<=j/2;i++)
{
if(j%i==0)
{
sum+=i;
}
}
for(B=0,n=1;n<=sum/2;n++)
{
if(sum%n==0)
{
B+=n;
}
}
if(B==j&&j<sum)
printf("亲密数%d--%d\n",j,sum);
}
return 0;
}
浙公网安备 33010602011771号