1. 程式人生 > 實用技巧 >基礎數論

基礎數論

一、整除

對於兩個整數\(a,b\),存在兩個唯一的整數\(q,r\),使得\(b=aq+r\),其中\(0≤r<|a|\)。

特別地,若\(r=0\),則我們稱\(a\)整除\(b\),記作\(a\mid b\)。

對於兩個正整數\(a,b\),若\(a\mid b\),則我們稱\(a\)是\(b\)的約數。

我們稱一個數是質數,當且僅當其質因子只有\(1\)以及其本身。特別地,\(1\)不是質數。

二、幾個結論

1. 素數有無窮多個。

證明:假設素數是有限的,並且數量為\(k\),分別為\(p_1,p_2,...,p_k\)。

考慮一個數\(X=p_1×p_2×...×p_k+1\)。

易知\(X\)與\(p_1,p_2,...,p_k\)互質,則\(X\)必為素數,與素數只有有限的\(k\)個矛盾。

所以素數有無窮多個。

2.\(\lim\limits_{x\rightarrow\infty} \frac{\pi(n) \ln n}{n}=1\)  \(\pi(n)\):不大於\(n\)的質數個數。

3.\(n\)和\(2n\)之間一定有質數。  4.\(P_n \sim \Theta (n\log n)\)

5.\(\sum\limits_{1\leq p \leq n,p是質數} \frac{1}{p} \sim \Theta(\log \log n)\)  6.\(\sum\limits_{i=1}^n \frac{1}{i} \sim \Theta (\log n)\)

三、公約數以及公倍數

1. 定義

對於 \(a,b\),若 \(d\mid a\)\(d\mid b\),則稱 \(d\)\(a,b\) 的公約數。
對於其中最大的 \(d\),我們稱之為 \(a, b\) 的最大公約數,記作 \(d = gcd(a, b)\)\(d = (a, b)\)
類似地,若 \(a\mid d\)\(b\mid d\),則稱 \(d\)\(a, b\) 的公倍數。
對於其中最大的 \(d\),我們稱之為 \(a, b\) 的最小公倍數,記作 \(d = lcm(a, b)\)\(d = [a, b]\)

2. 引理

\(a\geq b\)

,則 \(gcd(a,b)=gcd(a-b,b)=gcd(a\bmod b,b)\)

\(gcd(a,b)lcm(a,b)=ab\)

證明:\(a=p_1^{\alpha_1}\times p_2^{\alpha_2} \times ... \times p_k^{\alpha_k}\)\(b=p_1^{\beta_1}\times p_2^{\beta_2} \times ... \times p_k^{\beta_k}\)

\(gcd(a,b)=p_1^{min(\alpha_1,\beta_1)}\times p_2^{min(\alpha_2,\beta_2)}\times ... \times p_k^{min(\alpha_k,\beta_k)}\)\(lcm=p_1^{max(\alpha_1,\beta_1)}\times p_2^{max(\alpha_2,\beta_2)}\times ... \times p_k^{max(\alpha_k,\beta_k)}\)

\(max(\alpha_i,\beta_i)+min(\alpha_i,\beta_i)=\alpha_i+\beta_i\)

\(a\times b=p_1^{\alpha_1+\beta_1}\times p_2^{\alpha_2+\beta_2} \times ... \times p_k^{\alpha_k+\beta_k} \\=p_1^{min(\alpha_1,\beta_1)+max(\alpha_1,\beta_1)} \times ... \times p_k^{min(\alpha_k,\beta_k)+max(\alpha_k,\beta_k)} \\=gcd(a,b)\times lcm(a,b)\)

故該命題成立。

3. 定理(裴蜀定理)

對於任意整數 \(a, b, m\),則存在整數 \(x, y\) 滿足 \(ax + by = m\),當且僅當 \(gcd(a, b)\mid m\)

證明:\(a, b\) 之一為 \(0\),結論顯然成立。
若否,考慮 \(A = \{xa+yb \mid (x, y) \in \mathbb{Z}^2\}\) 中的最小正元素 \(d_0 = x_0a+y_0b\)(這一定存在)。考慮任意 \(p = x_1a + y_1b\in A\),設 \(p = qd_0 + r\),其中 \(0 ≤ r < d_0\),則 \(r = p-qd_0\in A\),故 \(r = 0\)。故 \(d_0\mid p\),則 \(d_0\mid a, b\)
然後,考慮任意 \(d\mid a, b\),若 \(a = kd\)\(b = ld\),則 \(d_0 = x_0a + y_0b = (x_0k + y_0l)d\),故 \(d\mid d_0\),故 \(d_0 = gcd(a, b)\)。在方程中,若 \(m = m_0d_0\),則顯然有無窮多組解。相反,若有解,則 \(|m| \in A\), 故 \(d_0\mid |m|\),即 \(d_0\mid m\)

4.歐幾里得演算法

\(a\mid b\)\(b\mid c\)\(gcd(a,b)=1\),則 \(ab\mid c\)

\(\forall a,b\in \mathbb{N}\)\(b\neq 0\)\(gcd(a,b)=gcd(b,a\bmod b)\)

int gcd(int x,int y){
    if(!y) return x;
    return gcd(y,x%y);
}
//時間複雜度:O(log(x+y)) 

擴充套件歐幾里得演算法:求解方程 \(ax+by=gcd(a,b)\)

在歐幾里得演算法的最後一步,即 \(b=0\) 時,顯然有一對整數 \(x=1,y=0\),使得 \(a\times 1+0\times 0=gcd(a,0)\)
\(b>0\),則 \(gcd(a,b)=gcd(b,a \bmod b)\)。假設存在一對整數 \(x,y\),滿足 \(b\times x+(a \bmod b)\times y=gcd(b,a\bmod b)\),因為 \(bx+(a \bmod b)y=bx+(a-b\lfloor \frac{a}{b} \rfloor)y=ay+b(x-\lfloor \frac{a}{b} \rfloor y)\),所以令 \(x'=y\)\(y'=x-\lfloor \frac{a}{b} \rfloor y\),就得到了 \(ax'+by'=gcd(a,b)\)

int exgcd(int a,int b,int &x,int &y){
    if(!b) return x=1,y=0,a;
    int d=exgcd(b,a%b,x,y);
    int z=x; x=y,y=z-y*(a/b);
    return d;
} 

四、整除的性質

1. 定理

\(a\mid bc\)\(gcd(a, b) = 1\),則 \(a\mid c\)
\(a\mid c\)\(b\mid c\)\(gcd(a, b) = 1\),則 \(ab\mid c\)

2.引理 (歐幾里得引理)

若質數 \(p\mid ab\) ,則不是 \(p\mid a\) ,就是 \(p\mid b\)

證明:\(p\mid a\) 則證畢。若 \(p\nmid a\) ,那麼兩者的最大公約數為 \(1\)。根據裴蜀定理,存在 \((m, n)\) 使得 \(ma + np = 1\)。於是 \(b = b(ma + np) = abm + bnp\)
由於 \(p\mid ab\) ,上式右邊兩項都可以被 \(p\) 整除。所以 \(p\mid b\)

五、算術基本定理

大於 \(1\) 的正整數 \(n\) 可以唯一分解成有限個質數的乘積。

證明:

1. 存在性:假設存在大於 \(1\) 的自然數不能寫成質數的乘積,並且最小的為 \(n\)
首先,按照定義,\(n\) 大於 \(1\)。其次,因為質數 \(p\) 可以寫成質數乘積:\(p=p\),與假設矛盾,所以 \(n\) 不是質數。則 \(n\) 只能是合數。而每個合數都可以分解成兩個小於自身而大於 \(1\) 的自然數的積。
設其中 \(a\)\(b\) 都是介於 \(1\)\(n\) 之間的自然數,因此,按照 \(n\) 的定義,\(a\)\(b\) 都可以寫成質數的乘積。從而 \(n\) 也可以寫成質數的乘積,與 \(n\) 的定義矛盾。因此大於 \(1\) 的自然數必可寫成質數的乘積。

2. 唯一性:類似地,假設存在大於 \(1\) 的自然數可以用多於一種的方式寫成多個質數的乘積,並且最小的為 \(n\)
首先,\(n\) 不是質數。將 \(n\) 用兩種方法寫出:\(n=p_1^{a_1}p_2^{a_2}...p_m^{a_m}=q_1^{b_1}q_2^{b_2}...q_n^{b_n}\)
根據歐幾里得引理,因為 \(p_1 \mid q_1^{b_1}q_2^{b_2}...q_n^{b_n}\),所以 \(q_1^{b_1},q_2^{b_2},...,q_n^{b_n}\) 中有一個能被 \(p_1\) 整除,即 \(q_1,q_2,...,q_n\) 中有一個能被 \(p_1\) 整除。不妨設為 \(q_1\)\(q_1\) 也是質數,因此 \(q_1=p_1\)
假設 \(a_1>b_1\),則 \(p_1^{a_1-b_1}p_2^{a_2}...p_m^{a_m}=q_2^{b_2}...q_n^{b_n}\)
易得,\(q_2,q_3,...,q_n\) 有一個能被 \(p_1\) 整除,但 \(p_1=q_1\neq q_i \ (i\neq 1)\)。所以不能有 \(a_1>b_1\),同理,也不能有 \(a_1<b_1\),因此 \(a_1=b_1\)
兩邊相除得 \(n_0=p_2^{a_2}...p_m^{a_m}=q_2^{b_2}...q_n^{b_n}\),於是存在比 \(n\) 小的正整數,可以用多於一種的方式寫成多個質數的乘積,與 \(n\) 的定義矛盾。因此唯一性得證。

六、同餘

1. 定義

\(m \mid a-b\),則我們稱 \(a\)\(b\) 在模 \(m\) 意義下同餘,記作 \(a\equiv b \pmod{m}\)

2. 定理

\(a\equiv b \pmod m\)\(a\equiv b \pmod n\) 意味著 \(a\equiv b \pmod {lcm(n,m)}\)
證明:因為 \(a\equiv b \pmod m\),所以 \(m \mid a-b\)。同理可得 \(n \mid a-b\)。所以 \(lcm(n,m) \mid a-b\),則 \(a\equiv b \pmod {lcm(n,m)}\)

\(gcd(k,m)=d\)\(ka\equiv kb \pmod m\),則 \(a \equiv b \pmod{\frac{m}{d}}\)

證明:因為 \(ka\equiv kb \pmod m\),所以 \(m \mid k(a-b)\)。設 \(m_0=\frac{m}{d}\)\(k_0=\frac{k}{d}\),則 \(m_0d\mid k_0d(a-b)\)。所以 \(m_0\mid k_0(a-b)\)

因為 \(gcd(k,m)=d\),所以 \(gcd(\frac{k}{d},\frac{m}{d})=1\),即 \(gcd(m_0,k_0)=1\),因此 \(m_0 \mid a-b\)。則 \(a \equiv b \pmod {m_0}\),即 \(a \equiv b \pmod{\frac{m}{d}}\)