解题思路:
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 人评分
【偶数求和】 (C++代码)浏览:703 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:505 |
校门外的树 (C语言代码)浏览:957 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:349 |
简单的a+b (C语言代码)浏览:816 |
简单的a+b (C语言代码)浏览:415 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:699 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:600 |
GC的苦恼 (C语言代码)浏览:621 |
判定字符位置 (C语言代码)浏览:795 |