题目大意:给出两个数,如果能用两个数通过数次相加减得到任意正整数,则输出“GOOD”,否则输出“NOT GOOD”
解题思路:只要两个数为互质的数就满足题目
这个题目的数据有点大原来我以为暴力解决会超时,并没有
#include <iostream>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
int main()
{
int a, b,t;
cin >> t;
while (t--)
{
cin >> a >> b;
if (a > b)//判断大小让a较小
{
int t = a;
a = b;
b = t;
}
if (a == b && a != 1)
//如果这两个数相等且不为1,一定不满足
{
printf("NOT GOOD\n");
continue;
}
int flag = 0;
for (int i = 2; i <= a; i++)
//从2-a挨个判断看看有没有公因式
{
if (a % i == 0 && b % i == 0)
{
flag = 1;
break;
}
}
if (flag)
//有公因式说明不是互质,不满足题意
{
cout << "NOT GOOD\n";
}
else
{
cout << "GOOD\n";
}
}
}