解题思路:

    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;    //返回真假
	}
}


点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论