2016.1.26
歐拉函數:
對於m=p1e1 . p2e2 . p3e3 . …… . pnen (唯一分解)
歐拉函數定義為φ(m)=m * ∏(pi – 1)/pi
其意義為不超過m並且和m互素的數的個數
特別的φ(1)=1
證明:
首先不知道容斥原理的先了解一下
於是可以得到φ(m)=n-n/p1-n/p2-...-n/pn+n/(p1p2)+n/(p1p3)+...+n/(pk-1pk)-...........
然后再來看公式φ(m)=m * ∏(1– 1/pi)
把右邊展開【眾人:你逗我
當然不是真的展開,事實上我們展開的每一項無非是從每個括號中選一個,不是1就是-1/pi ,然后乘起來得到的。
這時的你是否有一絲激動!
這不就是和容斥原理一毛一樣!
然后就得證了!
歐拉定理:
對於和m互素的x,有xφ(m)≡1(mod m)
證明:
設所有n以下和n互質的數依次為X1,X2,…,Xφ(n)
設k為一個與n互質的數,那么設A={kX1, kX2,…, kXφ(n)}
【那么A中沒有兩個數模n同余】
證明:假設ak≡bk(mod n)
那么有ak-bk=nq,即(a-b)k=qn,所以左式模n為0
然而k與n互質,1<(a-b)<n,所以(a-b)也模n不等於0
那么顯然上式不成立
證畢
【A中所有數的余數都與n互質】
證明:假設gcd(kXi mod n, n)=r
那么kXi=qn+pr
那么kXi也有因子r,那么kXi與n不互質,顯然不可能
證畢
那么由以上兩個結論可知A中的數模n的余數應該與X1,X2,…,Xφ(n) 唯一對應。
即X1*X2*…*Xφ(n) ≡ kX1*kX2*…*kXφ(n) (mod n)
也就是說0 ≡ (kφ(n)-1)*X1*X2*…*Xφ(n) (mod n)
顯然X1*X2*…*Xφ(n)是與n互質的,所以kφ(n)-1≡0(mod n)
kφ(n)≡1(mod n)
得證
費馬小定理:
特別的,當p為素數時,x無法被p整除,φ(p)=p-1,於是便有費馬小定理Xp-1≡1(mod p)
在p是素數時,對任意正整數x都有Xp≡X(mod p)
於是對於a的逆元x,有ax≡1(mod m),對於a,m互素且m為素數時,有x=am-2,於是我們可以通過快速冪快速求出a的逆元。
另外,借助素數篩,我們還可以很快的求出1-n的歐拉函數值。每當我們找到一個素數,就把他的倍數的歐拉函數值乘上(p-1)/p.
而且,借助費馬小定理我們可以實現對除法取模。
