尤拉函式:
尤拉函式在oi中是個非常重要的東西,不知道的話會吃大虧的.
尤拉函式用希臘字母φ表示,φ(n)表示n的尤拉函式.
對φ(n)的值,我們可以通俗地理解為小於n且與n互質的數的個數(包含1).
尤拉函式的一些性質:
1.對於素數p,
φ(p)=p-1,
對於對兩個素數p,q
φ(pq)=pq-1
尤拉函式是積性函式,但不是完全積性函式.
證明:函式的積性即:若m,n互質,則φ(mn)=φ(m)φ(n).由「m,n互質」可知m,n無公因數,所以φ(m)φ(n)=m(1-1/p1)(1-1/p2)(1-1/p3)…(1-1/pn)·n(1-1/p1')(1-1/p2')(1-1/p3')…(1-1/pn'),其中p1,p2,p3...pn為m的質因數,p1',p2',p3'...pn'為n的質因數,而m,n無公因數,所以p1,p2,p3...pn,p1',p2',p3'...pn'互不相同,所以p1,p2,p3...pn,p1',p2',p3'...pn'均為mn的質因數且為mn質因數的全集,所以φ(mn)=mn(1-1/p1)(1-1/p2)(1-1/p3)…(1-1/pn)(1-1/p1')(1-1/p2')(1-1/p3')…(1-1/pn'),所以φ(mn)=φ(m)φ(n).
即φ(mn)=φ(n)*φ(m)只在(n,m)=1時成立.
2.對於乙個正整數n的素數冪分解n=p1^q1*p2^q2*...*pn^qn.
φ(n)=n*(1-1/p1)*(1-1/p2)*...*(1-1/pn).
3.除了n=2,φ(n)都是偶數.
4.設n為正整數,∑φ(d)=n (d|n).
5.尤拉降冪公式:
(φ(c)表示c的尤拉函式值)
下面為求單個尤拉函式的**(c++):
ll eular(ll m)
}if(a>1) res=res/a*(a-1);
return res;
}如果求phi[1] phi[2] phi[3].....phi[n]**如下:
int phi[maxn];
void get_phi(int n)
}對於降冪公式的應用,我有一篇exponial的題目(求 (n)=
n(n − 1)(n − 2)⋯21
);**如下:
1 #include2 #include3 #include4view codeusing
namespace
std;
5 typedef long
long
ll;6
ll n,m;78
ll eular(ll m)919
}20if(a>1) res=res/a*(a-1
);21
return
res;22}
2324
ll fast_mod(ll x,ll n,ll m)
2533
return
res;34}
3536
ll work(ll n,ll m)
3750
return
ans;51}
5253
intmain()
5459
return0;
60 }
尤拉函式 尤拉定理
尤拉函式 對正整數 n,尤拉函式 是小於等於 n的數中與 n互質的數的數目 此函式以其首名研究者尤拉命名 euler so totientfunction 它又稱為 euler stotient function 函式 尤拉商數等。例如 8 4,因為 1,3,5,7均和8 互質。注 n為1時尤拉函式...
尤拉函式 尤拉定理
尤拉函式 設 n 為正整數,則 1,2,n 中與 n 互素的整數的個數計作 n 叫做尤拉函式。設 p 是素數,p p 1設 p 是素數,pa pa p a 1 設 p,q 是不同的素數,n q p,n p q 即 n p 1 q 1 設 m,n 是兩個正整數,且 m,n 1,若 n m n,n m ...
尤拉函式尤拉篩
尤拉函式求小於等於n與n互質的數的個數 複習時發現這個知識點竟然沒有整理 n為素數即為n 1 除了其本身 n為素數的倍數 ola sushu j i ola i sushu j else ola sushu j i ola i sushu j 1 include include include in...