#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);
}
}
}
62-亲密数
最新推荐文章于 2023-12-28 16:51:16 发布