GCD 与 LCM UVA - 11388

时间:2023-03-08 20:29:47

题目链接:

https://cn.vjudge.net/problem/23709/origin

本题其实有坑

数据大小太大, 2的32次方,故而一定是取巧的算法,暴力不可能过的

思路是最大公因数的倍数是最小公倍数,又有a <= b所以可以知道 a = gcd, b = lcm

AC代码如下:

#include <cstdio>
#define ll long long using namespace std; int main()
{
int T;
scanf("%d", &T);
while(T--)
{
ll x, y;
scanf("%lld%lld", &x, &y);
if(y%x != )
{
printf("-1\n");
continue;
}
printf("%lld %lld\n", x, y);
}
}

如有疑问,欢迎评论指出!