求两个正整数m,n的最大公约数和最小公倍数代码:
#include
void main()
{
int m,n,gcd,lcm; /gcd为最大公约数,lcm为最小公倍数/
int max,min,swap; /max为m,n中较大值,min为m,n中较小值/
printf("输入两个正整数m和n ");
scanf("%d %d",&m,&n);
max=m>n m:n; /返回m,n中较大值给max/
min=m swap=min; /较大值不能整除较小值时用得到/
if(max%min==0)
{
gcd=min;
printf("最大公约数gcd=%d",gcd);
}
while(swap!=0)
{
swap=swap-1; /往较小值下面找/
if(max%swap==0 && min%swap==0)
{
gcd=swap;
printf("最大公约数gcd=%d",gcd);
break; /找到停止循环/
}
}
lcm=m*n/gcd;
printf("最小公倍数lcm=%d",lcm);
}
|