#include<iostream> using namespace std; int main(){ int g,l,t; cin>>t; while(t--){ cin>>g>>l; if(l%g==0)//最大公约数一定是最小公倍数的因子 cout<<g<<" "<<l<<endl; else puts("-1"); } return 0; } // 使得 gcd(a,b) = g 成立的最小a=g // lcm(g,b) = l => g*b/g=l => b=l // 有解的情况下,两个数都求出来了 // a=g, b=l, 易证一定有l%g==0
原文地址:http://www.cnblogs.com/neverchanje/p/3840709.html