公约数和公倍数
描述
小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
- 输入
- 第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
- 随后的n行输入两个整数i,j(0<i,j<=32767)。
- 输出
- 输出每组测试数据的最大公约数和最小公倍数
- 样例输入
- 3
- 6 6
- 12 11
- 33 22
- 样例输出
- 6 6
- 1 132
- 11 66
1 #include <stdio.h> 2 3 int main(){ 4 int a; 5 int b; 6 int temp; 7 int T; 8 int a_save; 9 int b_save; 10 11 scanf("%d",&T); 12 13 while(T--){ 14 scanf("%d%d",&a,&b); 15 16 if(a<b){ 17 temp=a; 18 a=b; 19 b=temp; 20 } 21 22 a_save=a; 23 b_save=b; 24 while(a%b!=0){ 25 temp=a%b; 26 a=b; 27 b=temp; 28 } 29 30 printf("%d %d\n",b,a_save*b_save/b); 31 } 32 return 0; 33 }