1011 C语言程序设计教程,第三版课后习题6.1

题目描述

输入两个正整数m和n,求其最大公约数和最小公倍数。

输入

两个整数

输出

最大公约数,最小公倍数

样例输入

5 7

样例输出

1 35
 1     #include <stdio.h>
 2 
 3     int max_common_diviser(int n1, int n2)
 4     {
 5         int temp;
 6 
 7         if(n1 < n2)
 8         {
 9             temp = n1; n1 = n2; n2 = temp;
10         }
11 
12 
13         while(n1 % n2 != 0)
14         {
15             int t = n2;
16             n2 = n1 % n2;
17             n1 = t;
18         }
19 
20         return n2;
21     }
22 
23     int min_common_multiple(int n1, int n2)
24     {
25         return n1 * n2 / max_common_diviser(n1, n2);
26     }
27 
28     int main(int argc, char const *argv[])
29     {
30 
31         int m, n;
32         while(scanf("%d%d", &m, &n) != EOF)
33         {
34             printf("%d %d\n", max_common_diviser(m, n), min_common_multiple(m, n));
35         }
36 
37         return 0;
38     }