X-man

导航

数论(3)-------欧拉phi函数

欧拉phi函数
1.应用:
  对一个正整数n,求小于n且与n互质(包括1)的个数。
2.公式:
         I
Φ(n) =n ∏ (1 - 1 / pi),其中pi表示n的质因子,
        i=1
    I
n = ∏ (Pi)ki  (I 为 n 的素因子的个数)
   i=1
如:Φ(10)=10(1-1/2)(1-1/5)=4,其中2,5是10的质因子.
3.证明: 
   要证明这个式子,我们先来看几个基本的公式。 
   (1)  Φ(p)=p-1,p是质数
   (2)  Φ(p*q)=Φ(p)Φ(q)  p,q是质数
         Φ(p*q)=p*q-1- (q-1)(注:【p,2p,...(q-1))】个数q-1) -(p-1)(注:【q,2q,...(p-1)q】个数p-1)
              =(p-1)(q-1)=Φ(p)Φ(q)
    (3)  对于整数n,n=pk
               φ(n) = pk - pk-1 
         小于 pk 的正整数个数为 pk - 1个,其中
         和 pk 不互质的正整数有{p * 1,p * 2,...,p * (pk-1-1)} 共计 pk-1- 1 个
         所以 φ(n) = pk -1 ( pk-1- 1) = pk-pk-1 。    
     接下来要证明上面那个欧拉函数就是轻而易举的事情了。

            I
Φ(n)  = Φ(  ∏ (Pi)ki )
           i=1
          I
     = ∏[(Pi)ki- (Pi)ki-1 ]          
      i=1
再除以n就可以求得Φ(n)了
4.源代码模板  
int phi(int n)

{
    int ans,i,k;
    if(n==1
        ans=0;

    else{        
      ans=n;
      k=1;
      for(i=2;n!=1;i+=k){
        if(n%i==0){
            ans*=(i-1);ans/=i;
            while(n%i==0) n/=i;
            i=k;
        }


      }

    }

    return ans;
}

posted on 2013-05-30 22:23  雨钝风轻  阅读(530)  评论(0编辑  收藏  举报