题目描述:
有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是有好的。例如:
9的约数和有:1+3=4
4的约数和有:1+2=3
所以4和9是不友好的。
220的约数和有:
1+2+4+5+10+11+20+22+44+55+110+284
284的约数和有:1+2+4+71+142=220
所以220和284是友好的。
编写程序,判断两个数是否为友好数。
输入格式:
一行,两个整数。由空格分隔。
输出格式:
如果是友好数,则输出yes,否则输出no。
样例输入:
220 284
样例输出:
yes
数据范围与提示:
两个整数都小于10000
代码实现:
#include <stdio.h>
int main(void){
int a,b;
int i,j = 0 ,k = 0;
scanf("%d %d",&a,&b);
for (i = 1 ; i < a ; i ++){
if (a%i == 0){
j += i;
}
}
for (i = 1 ; i < b ; i ++){
if (b%i == 0){
k += i;
}
}
if (a==k && b==j){
printf("yes");
}else{
printf("no");
}
return 0;
}
结果展示: