尤拉函式(數論)

2021-07-22 23:26:43 字數 1333 閱讀 7928

尤拉函式的定義:對正整數n,尤拉函式是小於等於n的數中與n互質的數的數目。

我們令f(n)為尤拉函式

(1).其中當n=1時,f(1)=1,沒有任何實質的意義。

(2).特別的如果兩個素數p和q,且n=pq,則f(n)=(p-1)(q-1);

(3).若n是質數p的k次冪,f(n)=p^k-p^(k-1)=(p-1)p^(k-1),因為除了p的倍數外,其他數都跟n互質。

(4).f(n)稱為n的尤拉函式值。

(5).尤拉函式是積性函式:若m,n互質,

f(mn)=f(n)f(m).

(6).當n為奇數時,f(2n)=f(n).

(7).若n為質數則f(n)=n-1。

以下是關於尤拉函式的**

//線性打素數表,求尤拉值

#include

#include

#include

using

namespace

std;

const

int maxn=3000001;

int prime[maxn];//儲存素數

bool vis[maxn];//初始化

int phi[maxn];//尤拉函式

void prime(int n)

for(int j=0;j1;

if(i%prime[j]==0)//關鍵

else

phi[k]=phi[i]*(prime[j]-1);}}

}int main()

if(n>1)

rea=rea-rea/n;

return rea;

}int main()

return

0;}

//求由a到b的尤拉總值

#include

#include

#include

using

namespace

std;

const

int maxn=3000001;

int prime[maxn];//儲存素數

bool vis[maxn];//初始化

int phi[maxn];//尤拉函式

void prime(int n)

for(int j=0;j1;

if(i%prime[j]==0)//關鍵

else

phi[k]=phi[i]*(prime[j]-1);

} }

} int main()

}

數論 尤拉函式

尤拉函式,用 n 表示 尤拉函式是求小於等於n的數中與n互質的數的數目 求n的尤拉函式時我們可以減去它的所有素數因子以及它的倍數 12 12 2 2 3 素數因子有2 3所以我們減掉2,3的倍數 2的倍數 2,4,6,8,10,12 3的倍數 3,6,9,12 顯然2,3存在重複項6,12 根據容斥...

數論 尤拉函式

ll eular ll n if n 1 ans ans n n 1 return ans 尤拉函式的一些性質 當m,n互質時,有phi m n phi m phi n 若i p 0,有phi i p p phi i 對於互質x與p,有x phi 1 mod p 因此x的逆元為x phi 1 即尤拉...

數論 尤拉函式

大佬已經講的很清楚了,證明非常清晰 互質 兩個數的最大公約數為 1 稱這兩個數互質 求乙個數的尤拉函式 利用公式 int phi int n if a 1 ans ans n n 1 return ans 方法二 利用線性篩求多個數的尤拉函式 const int ma 1e5 5 bool book...