C语言 求两数的最大公约数和最小公倍数

时间:2021-11-29 00:36:59
 //作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
 1 #include<stdio.h>
2 //最大公约数
3 int gys(int x,int y){
4 int r;
5 while(y!=0){
6 r=x%y;
7 x=y;
8 y=r;
9 }
10 return x;
11 }
12 //最小公倍数
13 int gbs(int x,int y){
14 int z;
15 z=x*y/gys(x,y);
16 return z;
17 }
18
19 void main(){
20 int x,y;
21 printf("Please input two numbers:\n");
22 scanf("%d %d",&x,&y);
23 if(x<y){//交换x, y
24 x=x+y;
25 y=x-y;
26 x=x-y;
27 }
28 printf("%d 与 %d 的最大公约数为 %d\n",x,y,gys(x,y));
29 printf("%d 与 %d 的最小公倍数为 %d\n",x,y,gbs(x,y));
30 }

结果为:

C语言 求两数的最大公约数和最小公倍数