尤拉函式 模板

2021-10-09 05:02:30 字數 903 閱讀 8298

尤拉函式是少於或等於n的數中與n互質的數的數目。

尤拉函式的性質:它在整數n上的值等於對n進行素因子分解後,所有的素數冪上的尤拉函式之積。

就是對於乙個正整數n,小於n且和n互質的正整數(包括1)的個數,記作φ(n) 。

尤拉函式的通式:φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn)

其中p1, p2……pn為n的所有質因數,n是不為0的整數。φ(1)=1(唯一和1互質的數就是1本身)。

ll euler

(ll n)}}

if(n>1)

//這是為了如果n還為素數,加乙個這個

t=t/n*

(n-1);

return t;

}

尤拉函式特性:

1 若 a 為質數,phi[a]=a-1;

2 若 a 為質數,b % a=0,phi[a * b] = phi[b] * a

3 若 a,b 互質,phi [a * b]=phi[a] * phi[b](當 a 為質數時,if b % a!=0 ,phi[a*b]= phi[a] * phi[b])

const

int maxn=

10000

;int pd[maxn]

,phi[maxn]

,p[maxn]

,ssnum;

//pd為判斷n是否為素數pd==0為素數,p為素數篩裡面全為素數

//phi為尤拉函式答案,ssnum為當前素數個數

void

oula()

for(

int j =

0;j)//素數篩,篩去i*p[j]

else}}

}

尤拉函式(模板)

尤拉函式介紹 尤拉函式,在數論中用於求解 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...

尤拉函式模板

對正整數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 ...