40.公约数和公倍数
- 描述
- 小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
- 输入
- 第一行输入一个整数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 /* 2 求最小公倍数算法: 3 最小公倍数=两整数的乘积÷最大公约数 4 求最大公约数算法: 5 (1)欧几里得算法:辗转相除法 6 有两整数a和b: 7 ① a%b得余数c 8 ② 若c=0,则b即为两数的最大公约数 9 ③ 若c≠0,则a=b,b=c,再回去执行①*/ 10 11 #include<stdio.h> 12 int main( ) { 13 int n, i, j, k, t; 14 scanf("%d", &n); 15 while(n--) { 16 scanf("%d%d", &i, &j); 17 k = i * j; 18 while(j != 0) { 19 t = i % j; 20 i = j; 21 j = t; 22 } 23 printf("%d %d\n", i, k / i); 24 } 25 return 0; 26 }