辗转相除法求最小公约数

两个数的最大公约数是指能同时整除它们的最大正整数。 [1]
设两数为a、b(a≥b),求a和b最大公约数 的步骤如下:
(1)用a除以b(a≥b),得 。
(2)若 ,则 ;
(3)若 ,则再用b除以 ,得 .
(4)若 ,则 ;若 ,则继续用 除以 ,…,如此下去,直到能整除为止。
其最后一个余数为0的除数即为 的最大公约数。

int gcd(int a, int b)
{
    while (b){
        int temp = a % b;
        a = b;
        b = temp;
    }
    return a;
}

猜你喜欢

转载自blog.csdn.net/weixin_43935092/article/details/88854484