euler定理:對於正整數a,p,若(a,p)=1,有aφ(p)mod p=1,其中尤拉函式φ(p)=p(1-1/p_1) (1-1/p_2)......(1-1/p_k),p_1,p_2,....,p_k是p的所有的素數因子.
當p是乙個素數時,它的特例如下:
fermat 小定理:如果p是素數,(a,p)=1,則a(p-1) mod p=1.(這是因為φ(p)=p-1)
它 的應用:
1.求a^n mod(p),其中n是乙個較大的數,而p是乙個素數
這時就可以用費馬小定理了,將a^n拆為a^(p- 1)*a^(p-1)*......*a^(n%(p-1)).這時原式就等於a^(n%(p-1)) mod(p),這樣就可以大大減小運算次數,如果p還是很大,可以用反覆平方的方法,複雜度在o(log(n%(p-1)))的級別.
2.給定乙個正整數n,求乙個最小的整數x,使得2^x mod n=1。
當n是偶數時無解。
當n是奇數時,(2,n)=1,根據euler定理,2^phi(n)mod n=1,但phi(n)未必就是答案,因為有可能存在乙個更小的解,但我們可以確信最小解x一定是phi(n)的因子,如果不是phi(n)的因子,則設n mod x=r(0(1)求解x=phi(n);
(2)找出phi(n)的所有的素因子p_i(1<=i<=nr);
(3)for i=1……nr
讓x=x/p_i
直到2^x mod n!=1 或 p_i不能整除x
if 2^x mod n!=1
x=x*p_i
(4)x就是所求解
尤拉定理及其證明
背景 首先你要知道什麼是尤拉定理以及尤拉函式。下面給出尤拉定理,對於互質的a,p來說,有如下一條定理 a equiv1 mod p 這就是尤拉定理 定義 對於集合 0 a,我們將它稱之為乙個模m的同餘類記為 overline 那麼很顯然的,這樣的同餘類有m個,他們構成m的完全剩餘系。對於m來說,與m...
尤拉函式定理及其性質
尤拉函式就是指 給定乙個n,求得1到n中與n互質的數的個數 再介紹尤拉通項前,首先得介紹唯一分解定理 那麼求乙個數的尤拉值的公式為 n n 1 1 p1 1 1 p2 1 1 pn 其中的p1到pn為n分解出來的質因子 那麼求乙個數的尤拉值的時間複雜度為o sqrt n 實現 int euler i...
尤拉函式 尤拉定理
尤拉函式 對正整數 n,尤拉函式 是小於等於 n的數中與 n互質的數的數目 此函式以其首名研究者尤拉命名 euler so totientfunction 它又稱為 euler stotient function 函式 尤拉商數等。例如 8 4,因為 1,3,5,7均和8 互質。注 n為1時尤拉函式...