自然语言解决问题:
根据问题描述,该问题可以转化为:给定整数 A,判断A 是否有亲密数。为解决该问题,首先定义变量 a,并为其赋初值为某个整数。则按照亲密数定义,要判断a 中存放的整数是否有亲密数,只要计算出该整数的全部因子的累加和,并将该累加和存放到另一个变量b中,此时6 中存放的也是一个整数。再计算 b 中存放整数的全部子的累加和,将该累加和存放到变量 n 中。
若n 等于a 则可判定变量a和b中所存放的整数是亲密数
流程图:
具体代码:
#include<stdio.h>
int main(){
int a,i,b=0,n=0;
printf("There are following friendly--numbers pair smaller than3000:\n");
for(a=1;a<3000;a++){
for(i=1;i<=a/2;i++){
if(!(a%i))
b+=i;
for(i=1;i<=b/2;i++)
if(!(b%i))
n+=i;
if(n==a&&a<b)
printf("%4d--%4d ",a,b);
}
}
return 0;
}