歐拉函數

一、歐拉函數

貼一下百度百科

數論,對正整數n,歐拉函數是小於n的正整數中與n互質的數的數目(φ(1)=1)。此函數以其首名研究者歐拉命名(Euler's totient function),它又稱爲Euler's totient function、φ函數、歐拉商數等。 例如φ(8)=4,因爲1,3,5,7均和8互質。

所以通過歐拉函數可以很方便快捷的找出小於n的與n互質的數的個數

int euler(int n)  //求n的歐拉函數
{
    int num=n;
    for(int i=2;i*i<=n;i++){
        if(n%i==0){
            num=num/i*(i-1);
            while(n%i==0)
                n/=i;
        }
    }
    if(n>1)
        num=num/n*(n-1);
    return num;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章