原题链接:亲和数
解题思路:
①在while 循环外 规定计数变量初值h,
在while循环内 将变量h++(每输入一次A,B),直至变量h>=M(结束输入A,B的值)
②注意:在每次输入比较A,B后, sum1和sum2的值必须清零,避免影响下次比较;
③因数:必然小于A/B的1/2;
A%i==0时,sum1进行累加;
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int M;
scanf("%d",&M);
int h=0; //计数变量
while(h<M){ //循环条件
// printf("%d %d\n",h,M);
h++; //递加
int A=0,B=0;
int sum1=0,sum2=0;
scanf("%d %d",&A,&B);
// printf("%d %d %d\n",A,B,h);
if(A>=0&&B<=60000){
for(int i=1;i<=A/2;i++){ //因数求和
if(A%i==0){
sum1=sum1+i;
}
}
for(int j=1;j<=B/2;j++){ //因数求和
if(B%j==0){
sum2=sum2+j;
}
}
//printf("\n%d %d",sum1,sum2);
if(sum1==B&&sum2==A)printf("YES\n"); //比较,输出
else printf("NO\n");
}
}
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复