#include <iostream>
using namespace std;
int max_partibility(int m ,int n)
{
int tmp ,remainder;
if(m < n)
{
tmp = m;
m = n;
n = tmp;
}
while((remainder = m % n) != 0)
{
m = n ;
n = remainder;
}
return n;
}
int main()
{
int m ,n ,nCount ,tmp ,partibility;
cin >> nCount;
while(nCount--)
{
cin >> m >> n;
partibility = max_partibility(m ,n);
cout << partibility << " " << (m * n) / partibility << endl;
}
return 0;
}
欧几里得算法:
int gcd(int a,int b)
{
if(b == 0)
return a;
return gcd(b, a%b);
}