您的位置:首页 > 其它

62-亲密数

2014-01-23 16:33 288 查看
#include <stdio.h>
#include <stdlib.h>

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

main() {

//循环变量i,用来表示这3000个数字 ,j表示当前数字的可能的因子,
int i,j;
for(i=1;i<3000;i++){
//将这两个变量定义到这里,用来当判断下一个数字的时候清空sumA和sumB中的值
int sumA=0,sumB=0;
//1是亲密数
if(i==1){
printf("%d这个数字是亲密数字撒!\n",i);
}

//首先求出当前数字的全部因子
for(j=1;j<i;j++){
if(i%j==0){
//求出A的所有的因子的和
sumA+=j;
}
}

//让B的值等于sumA
for(j=1;j<sumA;j++){
if(sumA%j==0){
//求出B的所有的因子的和
sumB+=j;
}
}
//如果A的所有的因子的和等于B的所有的因子的和(sumA=B)并且B的所有因子和sumB等于A,那么这个数字就是亲密数字,所以就将他 输出
if(sumB==i){
printf("%d这个数字是亲密数字撒!\n",i);
}
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  亲密数 穷举 for