整除的定义:设a是非零整数,b是整数。如果存在一个整数q,使得b=a*q,那么就说b可被a整除,记作,且称b是a的倍数,a是b的约数(因子)。
整除的一些性质:
1.如果且,那么。(如果a|b且b|c,则b=q*a,c=p*b;得c=p*q*a,所以a|c。)
2.且等价于对任意的整数x和y,有。
证明:设a|b且a|c,用整除的定义即b=q*a且c=p*a,对于任意整数x,y有q*a*x+p*a*y=(q*x+p*y)*a,所以对任意整数x和y,有。
3.设,那么等价于。
4.设整数x和y满足下式:,那么。
证明:因为a|n,b|n根据性质3得(a*b)|(b*n),(a*b)|(a*n),再根据性质2得(a*b)|(a*n*x+b*n*y),其中(a*n*x+b*n*y)=n*(a*x+b*y),再根据已知a*x+b*y=1,转化为(a*b)|n。
5.若b=q*d+c,那么d|b的充要条件是d|c。
最大公约数定义:一般地,设是k个非零整数,如果存在一个非零整数d,使得,那么d就称为的公约数。公约数中最大的一个就称为最大公约数,记为GCD(),显然它是存在的,至少为1。
辗转相除法(欧几里得算法):求解两个数的最大公约数,其原理就是:GCD(a, b)=GCD(a, a-b)GCD(a, b)=GCD(b,a%b)。
证明:1)令x是GCD(a,b),x|a=p,x|b=q,即a=p*x, b=q*x;所以a-b=(p-q)xx|a-b;
2) 令x不是a的因子,则x不是a,a-b的因子。
3)令x|a,不是b的因子,则x不是a,a-b的公因子。
4)设整数m、r,且p=m*q+r,m*q表示a减m次b,由1)可以得到a%b=r*x;所以GCD(a, b)=GCD(b,a%b)。
定理(欧几里得算法):要计算两个整数a与b的最大公因数,先令,然后计算相继的商和余数
直到某余数为0.最后的非零余数就是a与b的最大公因数。
最小公倍数定义:一般地,设是k个非零整数,如果存在一个非零整数L,使得,那么L就称为的公倍数。公倍数中最小的一个就称为最小公倍数,记为LCM()。
关于两个数的最小公倍数设整数a、b、x、L,其中x为GCD(a, b),L为LCM(a,b);因为x是a和b的最大公约数,所以x|a和x|b肯定是互素的(即最大公约数为1),推出L=(a/x)*(b/x)*x,两边同乘x得到最小公倍数与最大公约数的关系:LCM(a,b)*GCD(a,b)=a*b.