尤拉函式板子

2021-10-22 06:43:30 字數 664 閱讀 6966

求單個

ll eular(ll n)

}if(n > 1) ans = ans/n*(n-1);

return ans;

}

多個用篩

/*

特性 :

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

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

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

*/int m[n],phi[n],p[n],nump;

//m[i]標記i是否為素數,0為素數,1不為素數;p是存放素數的陣列;nump是當前素數個數;phi[i]為尤拉函式

int main()

for (int j=1;j<=nump&&p[j]*i<=n;j++) //用當前已得到的素數陣列p篩,篩去p[j]*i

else phi[p[j]*i]=phi[i]*(p[j]-1); //互質,特性3其,p[j]-1就是phi[p[j]] }}

}

1136 尤拉函式(板子)

對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為euler s totient function 函式 尤拉商數等。例如 8 4 phi 8 4 因為1,3,5,7均和8互質。輸入輸入乙個數n。2 n 10 9 輸出輸出phi n 輸入樣例 8輸出樣...

尤拉函式 尤拉定理

尤拉函式 對正整數 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 ...