整除的定义:a,b是两个任意整数,b!=0,若存在整数q,使得a=b*q,称"a能被b整除",或"b能整除a",或"b是a的因数",或"a是b的倍数",用记号"b|a"表示。
整除的性质:
(1)b|0,因为0=b*0
(2)1|a,因为a=1*a
(3)b|a <=> b| abs(a)
(4)a|b, b|c => a|c,因为a|b,b|c => b=a*q1,c=b*q2 => c=a*q1*q2
定理1:a与abs(a)的约数相同。
因为6=1*6=2*3=(-1)*(-6)=(-2)*(-3),所以6的因数有1,-1,2,-2,3,-3,6,-6。
=> a与abs(a)的所有的约束是相同的,因为 a=b*q <=> a = (-b)*(-q)。
=> a的约数是成对出现的,b|a <=> -b|a,因为因数是成对出现的,所以在平时的讨论中只讨论正因数。
定理2:a,b是整数,都是m的倍数,则a+b,a-b都是m的倍数。
定理3:如果a1,a2,...,an都是m的倍数,则q1*a1+q2*a2+...+qn*an是m的倍数。
定理4(带余除法):若a,b是两个整数,b>0,则存在两个整数q,r,使得
a=b*q+r
其中0<=r<b,而且,q,r是唯一的。
如:当a=16,b=5,16=5*3+1
当a=-16,b=5,-16=5*(-3)-1=6*(-3)+2 => -16除以5的余数是2
当a=20,b=6,20=6*3+2
当a=-20,b=6,-20=6*(-3)-2=6*(-4)+4 => -20除以6的余数是4
a = b*q+r
-a = b*(-q)-r
(当r=0) = b*(-q)
(当r!=0) = b*(-q-1)+b-r
注:在minGW的GCC编译器中运行-16/5=-3,-16%5=-1,与理论的不是一样的。
证明:做整数列 ...,-3b,-2b,-b,0,b,2b,3b,...
存在q使q*b<=a<(q+1)*b
令r=a-q*b,则a=q*b+r
r>=0,q-q*b-b<0 => a-q*b<b => r<b
=> 0<=r<b
设a=b*q1+r1, 0<=r1<b
b(q-q1)+r-r1=0,b(q-q1)=r1-r
b*abs(q-q1)=abs(r-r1)<b,若q-q1!=0,b*abs(q-q1)>=b => abs(r-r1)>=b
又因为0<=r<b => -b<r-r1<b => abs(r-r1)<b
=> r = r1
推论:若a,b是两个整数,则存在两个整数q,r,使得
a=b*q+r
其中0<=r<abs(b),而且q,r是唯一的。
带余除法a=b*q+r,0<=r<b,则q叫做a除以b的不完全商,r叫做a除以b的余数。