原题链接:亲和数
解题思路:
①在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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复