1 #include<stdio.h>
2 int gcd(int a,int b)
3 {
4 int t,max,min;
5 if(a>b)
6 {
7 max=a;
8 min=b;
9 }
10 else
11 {
12 max=b;
13 min=a;
14 }
15 while(min!=max)
16 {
17 t=max-min;
18 if(t>min)
19 {
20 max=t;
21 }
22 else
23 {
24 max=min;
25 min=t;
26 }
27 }
28 return max;/*最大公约数*/
29 }
30 int lcm(int a,int b)
31 {
32 return a*b/gcd(a,b);/*两数之积除以最大公约数*/
33 }
34 int main()
35 {
36 int a,b,n;
37 scanf("%d",&n);
38 while(n--)
39 {
40 scanf("%d%d",&a,&b)==2;
41 printf("%d %d\n",gcd(a,b),lcm(a,b));
42 }
43 }