51nod 1136 尤拉函式

2021-08-20 16:09:45 字數 582 閱讀 8941

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

51nod1136 尤拉函式

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

51nod 1136 尤拉函式

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

51nod 1136 尤拉函式

1136 尤拉函式 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏 取消關注 對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為euler s totient function 函式 尤拉商數等。例如 8 4 phi ...