亲密数练习题

亲密数_1

2500年前数学大师毕达哥拉斯就发现,220与284两数之间存在着奇妙的联系:

220的真因数之和为:1+2+4+5+10+11+20+22+44+55+110=284

284的真因数之和为:1+2+4+71+142=220

毕达哥拉斯把这样的数对称为相亲数。相亲数,也称为亲密数,如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。

从键盘任意输入两个整数m和n,编程判断m和n是否是亲密数。若是亲密数,则输出“Yes!”,否则输出“No!”

 

程序运行示例1

Input m, n:

220,284

Yes!

 

程序运行示例2

Input m, n:

224,280

No!

 

输入格式: "%d,%d"

输出格式:

输入提示信息:"Input m, n:\n"

输出提示信息:"Yes!\n"

              "No!\n"

#include<stdio.h>

 

int main()

{

 int x, y, a, b,sum_x=0,sum_y=0;

 printf("Input m, n:\n");

 scanf_s("%d,%d", &x, &y);

 for (a = 2; a <= x / 2; a++)

 {

  if (x % a == 0)

  {

   sum_x = sum_x + a;

  }

 }

 for (b = 2; b <= y / 2; b++)

 {

  if (y % b == 0)

  {

   sum_y = sum_y + b ;

  }

 

 }

 sum_x = sum_x + 1;

 sum_y = sum_y + 1;

 if (sum_x == y&&sum_y==x)

 {

  printf("Yes!\n");

 }

 else

  printf("No!\n");

 return 0;

}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值