#include <stdio.h>
int main() {
int a,b,c,d=1,s=1,e,a1,b1;
scanf("%d %d",&a1,&b1);
if(a1==1){
printf("%d %d",b1,a1);
}else if(b1==1){
printf("%d %d",a1,b1); //先处理特殊情况
}else{
if(a1>b1){
a=a1;
b=b1;
}
else{
a=b1;
b=a1;
}
for(d=a%b;d!=0;){
e=d;
d=a%b;//使用辗转相除法详情见 https://haokan.baidu.com/v?pd=wisenatural&vid=15710142650708268274
a=b;
b=d;
}
s=(a1/e)*e*(b1/e);
printf("%d %d",s,a);//a为最大公约数,b为最小公倍数
}
return 0;
}
辗转相除法求最大公约数与最小公倍数
最新推荐文章于 2024-07-24 22:13:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)