尤拉函式(模板)

2021-07-04 02:16:22 字數 780 閱讀 1900

尤拉函式介紹:    

尤拉函式,在數論中用於求解 [ 1 , n ] 中與 n  互質數個數 的函式,因為研究者為尤拉,故命名為尤拉函式。

通式:φ(x) = x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn為x的所有質因數,x是不為0的整數。

φ(1) = 1(唯一和1互質的數(小於等於1)就是1本身)。 (注意:每種質因數只乙個。比如 12 = 2*2*3 那麼      φ(12) = 12 * (1-1/2) * (1-1/3)=4  )

若 n = p^k  (  p為 質數 ),則 φ(n) = p^k-p^(k-1) = (p-1)p^(k-1),( 除 p 的倍數外,其他數均為 p 的互質數 )。

若n = p( p 為質數),則  φ(n) = p-p^(1-1) = p-1。

尤拉函式性質:

1、  φ(mn) = φ(m) φ(n)

2、若n為奇數,φ(2n) = φ(n)。

int euler(int n)

if(n>1)

ret=ret/n*(n-1);

return ret;

}

素數篩選:

#define size 1000001

int euler[size];

void init()

{ memset(euler,0,sizeof(euler));

euler[1]=1;

for(int i=2;i

尤拉函式模板

對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。例如euler 8 4,因為1,3,5,7均和8互質。euler函式表達通式 euler x x 1 1 p1 1 1 p2 1 1 p3 1 1 p4 1 1 pn 其中p1,p2 pn為x的所有素因數,x是不為0的整數。euler 1 ...

尤拉函式模板

對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。例如euler 8 4,因為1,3,5,7均和8互質。euler函式表達通式 euler x x 1 1 p1 1 1 p2 1 1 p3 1 1 p4 1 1 pn 其中p1,p2 pn為x的所有素因數,x是不為0的整數。euler 1 ...

尤拉函式模板

尤拉函式的定義 在數論中,對於正整數n,少於或等於n 1,n 且與n互質的正整數 包括1 的個數,記作 n 函式的值 x x 1 1 p 1 1 1 p 2 1 1 p 3 1 1 p 4 1 1 p n 其中p 1 p 2 p n 為x的所有質因數 x是正整數 1 1 唯一和1互質的數,且小於等於...