解题思路:
m控制行数,循环里面输入两个数,通过求出一个数的真约数来与另一个数进行比较
注意事项:
1.真约数不可能大于原数的一般,故只需i>=a/2;
2.可以在输入a,b后比较大小,求小值的真约数和减少循环;
3.条件表达式输出,较if-else结构紧凑。
参考代码:
#include<stdio.h> int main() { int m; int a,b; int i,sum=0; scanf("%d",&m); while(m--){ //m--控制行数 scanf("%d%d",&a,&b); for(i=1;i<=a/2;i++) if(a%i==0) sum+=i; printf("%s\n",sum==b?"YES":"NO"); //条件表达式输出 } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:623 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:553 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:564 |
不容易系列2 (C语言代码)浏览:641 |
拆分位数 (C语言代码)浏览:1361 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:484 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:644 |
本人酷爱递归实现很多问题,这里也是浏览:634 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:606 |
1642题解浏览:784 |