欧拉函数

一、欧拉函数

贴一下百度百科

数论,对正整数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;
}

 

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