梦游神


私信TA

用户名:2214999

访问量:5712

签 名:

等  级
排  名 375
经  验 5179
参赛次数 3
文章发表 34
年  龄 0
在职情况 学生
学  校 山东
专  业

  自我简介:

TA的其他文章


解题思路:设aa数组和bb数组分别存A和B的真约数,设ans1和ans2分别累加A和B的真约数。最后判断ans1=B并且ans2=A即输出YES否则输出NO。

注意事项:每次while循环更新q1,q2,ans1,ans2的值。

参考代码:

#include"iostream"
using namespace std;
int aa[11111];
int bb[11111];
int main()
{
	int m;
	cin >> m;
	int a, b;
	int q1 = 0;
	int q2 = 0;
	int ans1 = 0, ans2 = 0;
	while (m) 
	{
		cin >> a >> b;
		q1 = 0;
		q2 = 0;
		ans1 = 0;
		ans2 = 0;
		for (int i = 1;i < a;i++) {
			if (a % i == 0) {
				aa[q1] = i;
				q1++;
			}
		}
		for (int j = 1;j < b;j++) {
			if (b % j == 0) {
				bb[q2] = j;
				q2++;
			}
		}
		 
		for (int i = 0;i < q1;i++)
		{
			ans1 += aa[i];
		}
		for (int i = 0;i < q2;i++) {
			ans2 += bb[i];
		}
		if (ans1 ==b&&ans2==a)
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
		m--;
	}
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »