解题思路:
1.用变量保存输入的两个数字
2.取出其中一个数字,从1开始到这个数字循环取模,如果能够整除就累加
3.如果累加的结果正好等于另一个数字,就可以输出 YES
4.反向再比较一次
注意事项:
1.注意可以循环到数字的一半就可以了,比如 220 从 1 到 110 循环。
参考代码:
import java.util.Scanner; class qinheshu { public static void main(String[] args) { Scanner input = new Scanner(System.in); while (input.hasNext()) { int count = input.nextInt(); //储存接下来有几组数据 int[][] nums = new int[count][2]; //储存数据的二维数组 for (int i = 0; i < count; i++) { nums[i][0] = input.nextInt(); //输入这组数据 nums[i][1] = input.nextInt(); } for (int i = 0; i < count; i++) { //正反都判断一次 if (isQinHeShu(nums[i][0], nums[i][1]) && isQinHeShu(nums[i][1], nums[i][0])) { System.out.println("YES"); } else { System.out.println("NO"); } } } } public static Boolean isQinHeShu(int a, int b) { int sum = 0; //累加记录值 for (int i = 1; i <= a / 2; i++) { if (a % i == 0) //是否是因数 { sum += i; } } return sum == b; //返回真假 } }
0.0分
0 人评分
A+B for Input-Output Practice (V) (C++代码)浏览:451 |
回文数(一) (C语言代码)浏览:751 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:594 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:517 |
数组与指针的问题浏览:718 |
小九九 (C语言描述,不看要求真坑爹)浏览:985 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:385 |
1073题解浏览:624 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:406 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:545 |