當(dāng)前位置:
首頁(yè) >
Eular 函数模板
發(fā)布時(shí)間:2025/4/16
36
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Eular 函数模板
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
歐拉函數(shù):用來(lái)求1...n-1范圍內(nèi)與n互質(zhì)的數(shù)的個(gè)數(shù)
phi(n) = n*(1 - 1/p1)*(1 - 1/p2)*...*(1 - 1/pk) (p1, p2, ... pk為n的質(zhì)因子)
因?yàn)?n = p1q1 * p2q2 * ... * pkqk
帶入得:phi(n) = (p1 - 1)*p1q1-1 * (p2 - 1)*p2q2-1 * ... * (pk - 1)*pkqk-1;
? ? ? ?代碼:
int eular(int n) {int i, res = 1;for(i = 2; i*i <= n; ++i) {if(n%i == 0) {n /= i; res *= i - 1;while(n%i == 0) {n /= i; res *= i;}}}if(n > 1) res *= n - 1;return res; }??
歐拉函數(shù)打表:
int Eu[N];void init() {int i, j;for(i = 1; i < N; ++i) Eu[i] = i;for(i = 2; i < N; ++i) {if(Eu[i] == i) {for(j = i; j < N; j += i) {Eu[j] = Eu[j]/i*(i - 1);}}} }?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/vongang/archive/2013/01/23/2873788.html
總結(jié)
以上是生活随笔為你收集整理的Eular 函数模板的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: BZOJ 1036 [ZJOI2008]
- 下一篇: boost.asio系列——socket