题解 UVa11388

题目大意 \(T\) 组数据,每组数据给定两个整数 \(G,L\),输出数对 \(x,y\) 满足 \(GCD(x,y)=G,LCM(x,y)=L\)\(x\) 最小。若无解则输出 \(-1\)

分析 数论水题。当 \(L\%G=0\) 时有解,且解为 \(x=G,y=L\)。这是因为一个整数的因数应当小于等于自身,所以 \(x<G\) 时不成立,而 \(x=G,y=L\) 时恰好成立。

#include<bits/stdc++.h>
using namespace std;

int T, G, L;

int main()
{
    scanf("%d", &T);
    while(T--) {
        scanf("%d%d", &G, &L);
        if(!(L % G)) printf("%d %d\n", G, L);
        else puts("-1");
    }
}

猜你喜欢

转载自www.cnblogs.com/whx1003/p/11741315.html