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 ",gcd(a,b),lcm(a,b)); 42 } 43 }