用c语言求最大公约数(辗转相除法)

设两个数,将大的数除以小的数取余数,再将除数除以余数,重复操作使余数为零时的除数即为最大公约数。

 

以下为例题:

 

 

//以下为代码:
#include<cstdio>
int main()
{
    int m,n,r,t;
    scanf("%d %d",&m,&n);
    int a =m*n;//先算出两者乘积,为后面求最大公倍数准备。
    while(n!=0)
    {
        t=m%n;//不需要比大小,即便前面小经过循环也会将两者调换。
        m=n;
        n=t;
    }
    printf("%d %d",m,a/m);//两数乘积除以最大公约数即为最小公倍数。
    return 0;


}

 


版权声明:本文为kexla原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>