问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的。例如: 9的约数和有:1+3=4 4的约数和有:1+2=3 所以9和4不是友好的。 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
解题思路:
按照题意,验证数据
AC代码:
1 #include <stdio.h> 2 3 int main(void) 4 { 5 int a,b; 6 int i,j = 0 ,k = 0; 7 scanf("%d %d",&a,&b); 8 for (i = 1 ; i < a ; i ++) 9 { 10 if (a%i == 0) 11 { 12 j += i; 13 } 14 } 15 for (i = 1 ; i < b ; i ++) 16 { 17 if (b%i == 0) 18 { 19 k += i; 20 } 21 } 22 23 if (a==k && b==j) 24 { 25 printf("yes"); 26 } 27 else 28 { 29 printf("no"); 30 } 31 32 return 0; 33 }