亲密数_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;
}