算术基本定理:
任何一个合数都可以被分解成有限个质数的乘积
N = p1^a * p2^b * p3^c *...(p1 < p2 < p3 < ... )
最大公因数:GCD(a,b)是由a,b的公有质因子的最小指数次幂的乘积构成
最小公倍数:LCM(a,b)是由a,b的所有质因子的最大指数次幂的乘积构成
LCM(a,b) = a * b / LCD(a,b)
两个数的质因子的次数存在三种情况:小于和大于还有相等
把两个数的质因子所有情况全部相乘<=>公有质因子的最小*所有质因子的最大
最小和最大都乘了,相等情况呢?
已经乘了两次了:相等情况既归属最小情况又归属最大情况
合数m,n,v
gcd(m, n, v) == gcd(gcd(m, n), v)
证明:
AI
令d1 = gcd(m, n, v), d2 = gcd(gcd(m, n), v)
欲证d1 == d2,运用夹逼定理
即证d1 >= d2, d2 >= d1
抓住了一般公因数和最大公因数的关系
先证d1 <= d2
因为d1能被m,n整除,d1是m,n的公因数,所以d1 <= gcd(m, n)
同时,d1能被v整除,所以d1是v的公因数,所以d1是gcd(m,n)和v的公因数,则d1 <= d2
再证d2 <= d1
因为d2整除(|符号)gcd(m, n),gcd(m, n)整除m,n,所以d2整除m, n
又d2整除v,所以d2是m,n,v的公因数,则d2 <= d1
//自己写的,写成一坨
令u = gcd(m, n),问题转化为求gcd(u, v)
因为u是m,n的最大质因子,则gcd(u, v)也一定是m,n的质因子
gcd(u, v)又满足是u, v的最大质因子,所以gcd(gcd(m, n), v) == gcd(m, n, v)
合数m,n,v
LCM(m, n, v) == LCM(LCM(m ,n), v)
证明:
运用双向整除性,最小公倍数的唯一性:如果两个数互相整除,那么两个数相等
令d1 = LCM(m, n, v), d2 = LCM(LCM(m ,n), v)
欲证d1 == d2
即证d1 | d2, d2 | d1
先证d2 | d1
由于已知d1是m,n,v的公倍数
可得m | d1, n | d1,则LCM(n , m) | d1
又知v | d1, 则d1是LCM(n, m)和v的公倍数,而d2是LCM(n, m)和v的最小公倍数
可得d2 | d1
再证d1 | d2
由于已知d2整除LCM(m, n), v
可得LCM(m, n) | d2,LCM(m, n)是m,n的最小公倍数,则m | d2, n | d2
则d2是n, m, v的公倍数,而d1又是m,n,v的最小公倍数
可得d1 | d2
gcd(LCM(a,b), c) == LCM(gcd(a,c), gcd(b,c))