输入21和28最小公倍数是错的,输入34和23是错的,输入3和21是对的,哪出了问题,是对输入的数有什么要求吗
#include<stdio.h>
int main(void){
int m,n,r,gcd,lcm;
printf("输入两个正整数:");
scanf("%d%d",&m,&n);
while(1){
r=m%n;
if(r==0)
break;
m=n;
n=r;
}
gcd=n;
lcm=m/gcd*n;
printf("最大公约数:%d\n",gcd);
printf("最小公倍数:%d\n",lcm);
return 0;
}