對正整數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)=1(唯一和1互質的數就是1本身)。
尤拉公式的延伸:乙個數的所有質因子之和是euler(n)*n/2。
那麼如何變成實現尤拉函式呢?下面通過兩種不同的方法來實現。第一種方法是直接根據定義來實現,同時第一種方法也是第二種篩法的基礎,當好好理解。
//直接求解尤拉函式
int euler(int n)
} if(a>1) res=res/a*(a-1);
return res;
}
//篩選法打尤拉函式表
#define max 1000001
int euler[max];
void init(){
euler[1]=1;
for(int i=2;i
尤拉函式(模板)
尤拉函式介紹 尤拉函式,在數論中用於求解 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 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互質的數,且小於等於...