#include
int main()
{
int m,n;
int divisor,dividend,res;/*除数 被除数 余数*/
scanf("%d%d",&m,&n);
if(m>0&&n>0)
{
if(m>=n)
{
divisor=n;
dividend=m;
}
else
{
divisor=m;
dividend=n;
}
res=dividend%divisor;
while(res!=0)//循环体是三条语句,不加大括号循环只执行一条语句
{
dividend=divisor;
divisor=res;
res=dividend%divisor;
}
printf("%d",divisor);
}
else
printf("error!\n");
return 0;
}
两数相乘除以最大公约数就是最小公倍数
你用while,res没有!=0,后赋值,但是没退出循环啊,你这个成死循环了
int
m,n,i,j;
注意int型整数的取值范围,上限大概是6万多,
100000显然溢出,结果就不对了,可以考虑换成long、double型等修饰