求最大公约数和最小公倍数时while和if的区别
#include <stdio.h>int main()
{int gys(int m,int n);
int gbs(int m,int n);
int x,y;
scanf("%d,%d",&x,&y);
printf("%d,%d",gys(x,y),gbs(x,y));
}
int gys(int m,int n)
{int t,d;
if(m<n)
{d=m;
m=n;
n=d;
}
while(m%n)//当此处为if(m%n)其他公约数可得出而输入15,9时得到最大公约数得6改为while才可以?这是为什么啊
{t=m%n;
m=n;
n=t;
}
return (n);
}
int gbs(int m,int n)
{return(m*n/gys(m,n));
}