题解 | #小蓝的疑惑#
小蓝的疑惑
https://ac.nowcoder.com/acm/problem/265528
首先有定理:
注意到值域 可以直接从小到大枚举
,利用
算出
,再判断
是否分别为
的
即可
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
void solve() {
int x, y;
cin >> x >> y;
for (int i = x; i <= y; i ++) {
LL a = i, b = (LL)x * y / a;
if (__gcd(a, b) == x && a * b / __gcd(a, b) == y) {
cout << a << ' ' << b << "\n";
return;
}
}
puts("-1");
}
int main() {
int T;
cin >> T;
while (T --) {
solve();
}
return 0;
}
凡岛公司福利 528人发布