1. 程式人生 > >數論-基本概念篇

數論-基本概念篇

模運算 strong 同時 自身 存在 nbsp 重要 不同 a+b

一:整除與約數

  整除:若整數a除以非零整數b,商為整數,且余數為0,我們就說a能被b整除(或者說b整除a),記作b|a。

  約數:如果d|a且d>=0,則稱d是a的約數。

二:素數與合數

  素數:如果一個整數a>1且只能被平凡數1和它自身所整除,則稱這個數是素數(質數)。

  合數:如果一個整數a>1且不是素數,則稱這個數是合數。

  註意:1既不是合數也不是質數,2是最小的素數。(有些OJ的題目中會把1當作質數,有些會把2當作合數)。

三:除法定理、余數與模運算

  除法定理:對於任何整數a和任何整數n,存在唯一整數q和r,滿足0<<r<n且a = q*n+r;稱q=⌊a/n⌋為除法的商,值r = a mod n為除法的余數。n|a當且僅當a mod n = 0.

  模運算:對任意整數a和任意整數n,a mod n的值就是a/n的余數。a mod n = a - n*⌊a/n⌋,可知0<=a mod n < n。

  若a mod n = b mod n,則記 a ≡ b(modn),稱模n時a等價於b。即a與b除以同一個數時有相同的余數。等價地,a≡b(modn)當且僅當n時b-a的一個因子。

四:公約數與最大公約數

  公約數:如果d是a的約數並且d也是b的約數,則稱d是a與b的公約數。

  公約數的一條重要性質是:d|a 且 d|b 蘊涵著d|(a+b) 且 d|(a-b),更一般地,對於任意整數x和y,有d|a 且 d|b 蘊涵著 d|(ax+by)

  最大公約數:兩個不同時為0的整數a與b的公約數中最大的數成為最大公約數,記作gcd(a,b)。定義gcd(0,0)= 0。  

  GCD函數的基本性質:gcd(a,b)=gcd(b,a)、gcd(a,b)=gcd(|a|,|b|)、gcd(a,ka)=|a|,k屬於整數。

            gcd(a,b)=gcd(-a,b)、gcd(a,0)=|a|

  定理:如果任意整數a和b都不為0,則gcd(a,b)是a與b的線性組合集{ax+by:x,y∈Z}中的最小元素。

  


證明:設s是a與b的線性組合集合中的最小正元素,並且對某個x,y∈Z,有s=ax+by。設q=⌊a/s⌋,則a mod s = a-q*s = a-q(ax+by) = a(1-qx)+b(-qy)。因此amods也是a與b的一個線性組合。s是這個線性組合中的的最小正數,由於0<=amods<s,故有a mod s = 0。因此s|a,類似地,可得到s|b.因此s是a與b的公約數,所以gcd(a,b)>=s。因為gcd(a,b)能同時被a和b整除,並且s是a與b的一個線性組合,所以gcd(a,b)|s。但由於gcd(a,b)|s和s>0,因此gcd(a,b)<=s。將上面已證明的gcd(a,b)>=s與gcd(a,b)<=s結合起來,得到gcd(a,b)=s。因此證明了s是a與b的最大公約數。

推論:對任意整數a與b,如果d|a並且d|b,則d|gcd(a,b)。

   對所有整數a和b以及任意非負整數n,有gcd(an,bn)=ngcd(a,b)。

   對於任意整數n,a,b,如果n|ab且gcd(a,n)=1,則n|b。


五:互質數

  如果兩個整數a與b只有公約數1,即gcd(a,b)=1,則a與b稱為互質數。

  定理:對於任意整數a,b和p,如果gcd(a,p)=1且gcd(b,p)=1,則gcd(ab,p)=1。

數論-基本概念篇