1 #include <cstdio>
2 int gcd(int a,int b)
3 {
4 return b==0?a:gcd(b,a%b);
5 }
6 int gcd1(int a,int b)
7 {
8 if(a==0)return b;
9 if(b==0)return a;
10 if(a<b) return gcd(a,b-a);
11 else return gcd(b,a-b);
12 }
13 int gcd3(int a,int b)
14 {
15 while(a!=0&&b!=0){
16 if(a<b) b=b-a;
17 else {int t;t=a;a=b;b=t-b;}
18 }
19 if(a==0)return b;
20 else return a;
21 }
22 int main(){
23 int a;int b;
24 while(scanf("%d%d",&a,&b)!=EOF){
25 printf("%d %d %d\n",gcd1(a,b),gcd(a,b),gcd3(a,b));
26 }
27
28 return 0;
29 }
30 #include<stdio.h>
31 int main()
32 {
33 int a,i,b,s,c,max,min,d;
34 while(scanf("%d%d",&a,&b)!=EOF)
35 {
36 if(a<b)
37 {
38 s=a;
39 a=b;
40 b=s;
41 }
42 if(b==0&&a!=0)
43 printf("%d %d\n",0,b);
44 if(a==b)
45 printf("%d %d\n",a,b);
46 max=a;
47 min=b;
48 if(a>b&&b!=0)
49 {
50 while(a!=0&&b!=0)
51 {
52 c=a;
53 a=a%b;
54 if(a!=0)
55 {
56 c=a;
57 b=b%a;
58 }
59 if(b!=0)
60 {
61 c=b;
62 }
63 }
64 printf("%d %d\n",c,max*min/c);
65 }
66 }
67 return 0;
68 }