您的位置:首页 > 编程语言 > C语言/C++

蓝桥杯 - 算法训练 友好数 C语言实现

2017-03-02 12:12 239 查看
算法训练 友好数
 
题目在此:

问题描述

  有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的。例如:

  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

分析:
数据规模并不大,可以暴力。

代码在此:
#include<stdio.h>

int main () {

int a,b;
int i,j;
int s1 = 0, s2 = 0;

scanf("%d%d",&a, &b);

for(i = 1; i < a; i ++){	//计算a的约数和 s1
if(a%i == 0){
s1 += i;
}
}

if(s1 == b){
for(i = 1; i < b; i ++){	//计算b的约数和 s2
if(b%i == 0){
s2 += i;
}
}

if(s2 == a){
printf("yes");
} else {
printf("no");
}
} else {
printf("no");
}

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