您的位置:首页 > 其它

3.1趣味整数之亲密数

2016-03-31 19:52 441 查看
1.问题描述

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

2完整程序

int main(int argc,char*argv[]){

for ( int a=1; a<3000; a++) {
int b=0;
for ( int i=1; i<=a/2; i++)
if ((a%i)==0)
b+=i;
int n=0;
for ( int i=1; i<=b/2; i++)
if ((b%i)==0)
n+=i;

if (n==a&&a<b) {
printf("亲密数:%d---%d\n",a,b);
}

}

return 0;


}

//方式2

int main(int argc,char*argv[]){

int i,b,n;
for ( int a=1; a<3000; a++) {
for ( b=0, i=1; i<=a/2; i++)//b初始化为0
if ((a%i)==0)
b+=i;
for ( n=0, i=1; i<=b/2; i++)//n初始化为0
if ((b%i)==0)
n+=i;

if (n==a&&a<b) {
printf("亲密数:%d---%d\n",a,b);
}

}

return 0;


}

3.结果

亲密数:220—284

亲密数:1184—1210

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