题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2989
题意:给你GCD(a,b)和LCM(a,b),求a和b
思路:当最小公倍数能够除尽最小公倍数时,说明存在,此时最小的a就是GCD(a,b),b就是LCM(a,b),否则不存在
ac代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXN 101000
#define LL long long
#define ll __int64
#define INF 0xfffffff
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int a,b;
scanf("%d%d",&a,&b);
if(b%a)
printf("-1\n");
else
printf("%d %d\n",a,b);
}
return 0;
}