【数学】欧几里得(辗转相除)的证明

证明: gcd (a,b) == gcd (b,a%b)

yu = a % b = a - kb (k 为 a/b 向下取整)
假设最大公约数为d,上式同时除以 d
yu / d = a / d + k
b / d
等号左侧为整数 ,同样右侧也是整数 ,证明yu 也能被d 整除

整体递归过程: gcd(a,b) == gcd(b,a%b)
边界条件: 当本次函数的b == 0时,说明上次函数的a%b == 0 , 则b位a,b的最大公约数

int gcd(int a,int b)
{
    if (b == 0) return a;
    else
    {
        gcd(b,a%b);
    }
}
原文地址:https://www.cnblogs.com/sxy-798013203/p/7790060.html