前言
之前只知道一味的背辗转相除法的biao,连它是欧几里得算法都不知道,所以决定写一篇证明
百度百科了解一下
欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数。应用领域有数学和计算机两个方面。
计算公式gcd(a,b) = gcd(b,a mod b)。//这就是我接下来要证明的东东
证明
假设
1.求n、m的最小公倍数
2、a、b分别是 m div n 和 m mod n,即 m = na + b
3、gcd(m,n)表示m、n的最大公因数
求证:gcd(m,n) = gcd(n,b),也就是gcd(x,y)=gcd(y,x mod y)//上面说的那个
证:设c=gcd(m,n),d=gcd(n,b)
(1):
因为 c 为m,n的公因数
所以 c | m,c | n //“|” 是整除符号,x | y代表x是y的因数
所以 c | na //n乘任意整数都是c的倍数
所以 c | (m - na) 即 c | b //因为m和na都是c的倍数,所以相减也是
所以 c 为 n,b 的公因数
因为 d 是 n,b 的最大公因数
所以 c <= d
(2):同理可证 d <= c
因为 d 为n,b的公因数
所以 d | n , d | b //“|” 是整除符号,x | y代表x是y的因数
所以 d | na //n乘任意整数都是d的倍数
所以 d | ( na+b) 即 d | m //因为m和na都是c的倍数,所以相加也是
所以 d 为 m,n 的公因数
因为 c 是 m,n 的最大公因数
所以 d <= c
综上所述:c = d,即gcd(m,n) = gcd(n,b) 证毕。
推论1:若 b | a(a=tb),则若 k >= 0, b | ka (ka = k*tb)
推论2:若 c | a,c | b,则 c | (a +- b)
总结
自我感jio良好,觉得证得挺清楚的,应该都能看懂,希望对大家有所帮助。
来源:https://blog.csdn.net/qq_42887171/article/details/100009425