一个简单的实现:
#include <stdio.h>
int gcd(int a, int b);
int lcm(int a, int b);
int main(void){
int a , b;
scanf("%d %d",&a,&b);
int g=gcd(a,b);
int l = lcm(a,b);
printf("%d和%d的最大公约数是:%d\n",a,b,g);
printf("%d和%d的最小公倍数是:%d\n",a,b,l);
}
/**
* 辗转相减法
* 算法参考:
* https://blog.csdn.net/yxdayd/article/details/44774015
*/
int gcd(int a, int b){
while(1){
if(a>b)
a-=b;
else if(a<b)
b -=a;
else
return a;
}
}
int lcm(int a, int b){
//最小公倍数是两数乘积除以最大公约数。
//参考链接:https://blog.csdn.net/qq_43527632/article/details/83475439
int gbs = a*b /gcd(a,b);
return gbs;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: