代码展示:
#include <stdio.h>
int main()
{
int m=0;
int n=0;
int x=0;//最大公约数
int y=0;//最小公倍数
scanf("%d %d",&m,&n);
x=m<n?m:n;
y=m>n?m:n;
while(1)
{
if(m%x==0 && n%x==0)
break;
x--;
}
while(1)
{
if(y%m==0 && y%n==0)
break;
y++;
}
printf("%d",x+y);
return 0;
}
运行结果展示:
方法二:
代码展示:辗转相除法
#include <stdio.h>
int main()
{
int m=0;
int n=0;
scanf("%d %d",&m,&n);
int tmp=0;
int tmp_m=m;
int tmp_n=n;
//最小公倍数=m*n/最大公约数
while(tmp=tmp_m%tmp_n)
{
tmp_m=tmp_n;
tmp_n=tmp;
}
//循环结束后,tmp_n就是最大公约数
printf("%d\n",tmp_n+m*n/tmp_n);
return 0;
}
运行结果展示: