辗转相除法求最大公约数,最小公倍数
辗转相除法原理

求最大公约数转换为数学方法解决,以较大的数为长,较小的数为宽构成长方形,公约数就是有个正方形能恰好能填充满这个长方形,最大公约数就是找最大的那个正方形能恰好填满这个长方形。
a%b求余,如果余数为零,则最大公约数为b,否则,以a%b的余数为短边,b为长边,继续求余,直到余数为零为止。
void MaxCommonDivisor(int a,int b)
{
if (a<b)
{
a=a+b;
b=a-b;
a=a-b;
}
while (b!=0)
{
int temp=a%b;
a=b;
b=temp;
}
printf("最大公约数为:%d\n",a);
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
MaxCommonDivisor(a,b);
return 0;
}
浙公网安备 33010602011771号