两个数的最小公倍和最大公约数问题
1#include <stdio.h>
2
3int Gcd(int x,int y);
4int Icm(int x,int y);
5
6int main(void)
7{
8 int n,m;
9
10 printf("请输入两个整数(n,m):");
11 scanf("%d,%d",&n,&m);
12 printf("\n整数%d和%d的最大公约数为:%d",n,m,Gcd(n,m));
13 printf("\n整数%d和%d的最小公倍数为:%d",n,m,Icm(n,m));
14
15 return 0;
16}
17/*该函数用辗转相除法计算两个数的最大公约数*/
18
19int Gcd(int x,int y)
20{
21 int t,r;
22
23 if (x<y)
24 {
25 t=x;
26 x=y;
27 y=t;
28 }
29
30 while (1)
31 {
32 r=x%y;
33 if (r!=0)
34 {
35 x=y;
36 y=r;
37 }
38 else break;
39 }
40
41 return y;
42}
43/*该函数用于计算两个数饿最小公倍数*/
44
45int Icm(int x,int y)
46{
47 return ((x*y)/Gcd(x,y));
48}
49
50/****************************/
51
52
2
3int Gcd(int x,int y);
4int Icm(int x,int y);
5
6int main(void)
7{
8 int n,m;
9
10 printf("请输入两个整数(n,m):");
11 scanf("%d,%d",&n,&m);
12 printf("\n整数%d和%d的最大公约数为:%d",n,m,Gcd(n,m));
13 printf("\n整数%d和%d的最小公倍数为:%d",n,m,Icm(n,m));
14
15 return 0;
16}
17/*该函数用辗转相除法计算两个数的最大公约数*/
18
19int Gcd(int x,int y)
20{
21 int t,r;
22
23 if (x<y)
24 {
25 t=x;
26 x=y;
27 y=t;
28 }
29
30 while (1)
31 {
32 r=x%y;
33 if (r!=0)
34 {
35 x=y;
36 y=r;
37 }
38 else break;
39 }
40
41 return y;
42}
43/*该函数用于计算两个数饿最小公倍数*/
44
45int Icm(int x,int y)
46{
47 return ((x*y)/Gcd(x,y));
48}
49
50/****************************/
51
52