gcd算法需要注意两件事情
1.算法的正确性。
答:证明如上
2.算法的终止条件的证明(为什么终止条件一定是b==0?)
答:
也可以这么理解:对于两个数字a,b,他们的最大公因子要么是1 (互素),要么大于1,因为余数是越来越小的,所以如果最后a%b == 0 ,那么直接return a%b即可,如果不是,因为这两个数字是固定的,所以最后a%b一定可以到 1(因为余数一定是最大公因数的倍数),
此时这个就变成了gcd(c,c-1)即为1
所以得证
gcd算法需要注意两件事情
1.算法的正确性。
答:证明如上
2.算法的终止条件的证明(为什么终止条件一定是b==0?)
答:
也可以这么理解:对于两个数字a,b,他们的最大公因子要么是1 (互素),要么大于1,因为余数是越来越小的,所以如果最后a%b == 0 ,那么直接return a%b即可,如果不是,因为这两个数字是固定的,所以最后a%b一定可以到 1(因为余数一定是最大公因数的倍数),
此时这个就变成了gcd(c,c-1)即为1
所以得证