zoukankan      html  css  js  c++  java
  • 初等数论学习笔记一:整除的概念与带余除法

    整除的定义: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的余数。

  • 相关阅读:
    Java之Chat历程
    Java之静态方法中的内部类
    Java异常捕获之finally
    C语言复杂声明的本质与局限
    使用beyond compare或kompare作为git的对比、合并工具
    [二分] [洛谷] P1258 小车问题
    [STL] [洛谷] P1165 日志分析
    [洛谷] P2802 回家
    卡特兰数的应用
    [洛谷] P1722 矩阵Ⅱ
  • 原文地址:https://www.cnblogs.com/answernotfound/p/numbertheorynote1.html
Copyright © 2011-2022 走看看