欧拉函数

来源:互联网 发布:linux 模块参数设置 编辑:程序博客网 时间:2024/06/05 11:43

原创网址:http://www.cnblogs.com/handsomecui/p/4755455.html


欧拉函数

                                     算法总结

 一欧拉函数(Euler's totient function)

欧拉函数的定义:

    在数论中,对于正整数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互质的数,且小于等于1)。注意:每种质因数只有一个。

     例如:

         φ(10)=10×(1-1/2)×(1-1/5)=4;

         1 3 7 9

         φ(30)=30×(1-1/2)×(1-1/3)×(1-1/5)=8;

         φ(49)=49×(1-1/7)=42;


欧拉函数的性质:

(1)   p^k型欧拉函数:

若N是质数p(即N=p), φ(n)= φ(p)=p-p^(k-1)=p-1。

若N是质数p的k次幂(即N=p^k),φ(n)=p^k-p^(k-1)=(p-1)p^(k-1)。

(2)mn型欧拉函数

设n为正整数,以φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值。若m,n互质,φ(mn)=(m-1)(n-1)=φ(m)φ(n)。

(3)特殊性质:

若n为奇数时,φ(2n)=φ(n)。

对于任何两个互质 的正整数a,n(n>2)有:a^φ(n)=1 mod n (恒等于)此公式即 欧拉定理

当n=p 且 a与素数p互质(即:gcd(a,p)=1)则上式有: a^(p-1)=1 mod n (恒等于)此公式即 费马小定理

欧拉函数相关的证明:

(1)   p^k型的欧拉函数的证明:

对于给定的一个素数p: φ(p)=p-1 那么容易证明φ(n)=p^k-p^(k-1)

已知少于或等于p^k的正整数的个数为p^k-1,其中和p^k不互质的正整数有{ p×1,p×2,...,p×(p^(k-1)-1)},共计p^(k-1)-1个

故: φ(n) = p^k-1-(p^(k-1)-1)=p^k-p^(k-1)。

(2)   mn型的欧拉函数的证明:

因为:x=mn m与n互质(即:gcd(m,n)=1);根据中国剩余定理Z(x)和Z(m)×Z(n)之间存在一一映射,所以x的完全余数集(见下面参考)中的元素的个数Z(x)等于Z(m)×Z(n)元素的个数;而Z(m)×Z(n)= φ(m)φ(n)

故有: φ(mn) =φ(m)φ(n) 成立。

(3)任意正整数的欧拉函数的相关证明:

任意一个整数n都可以表示为其质因子的乘积:

 n=(p(1)*k(1)) *(p(2)*k(2)) *(p(3)*k(3))…(p(i)*k(i))*…*(p(I)*k(I)) 其中I为n 的质因子的个数。

根据(1)(2)的结论,很容易得出它的欧拉函数为:

φ(n)=n(1-1/p(1))(1-1/p(2))(1-1/p(3))(1-1/p(4))…..(1-1/p(i)) 其中I为n 的质因子的个数。

对于任意n>2,2|φ(n) 必定存在 p(i)-1是偶数


欧拉定理的相关证明:


(1)  令Z(n)={ X(1),X(2),…,X(φ(n)) }  S={ a*X(1) mod n, a*X(2) mod n ,…,a*X(φ(n)) mod n },则 Z(n)=S。


1)因为a与n互质(即:gcd(a,n)=1), X(i)(1≤i≤φ(n))与n互质(即:gcd(X(i),n)=1);所以


a*X(i)与n互质(即:gcd(a*X(i),n)=1),故 a*X(i) mod n ∈ Z(n)。


     2)若i≠j,那么 X(i)≠X(j) ,又有a与n互质(即:gcd(a,n)==1),则可得出: a*(X(i)) mod n ≠a*X(j) mod n (消去定律)。


(2)   a^(φ(n))*X(1)*X(2)*X(3)*…*X(φ(n)) mod n


=(a*X(1))*(a*X(2))*(a*X(3))*…*(a*X(φ(n))) mod n


=(a*X(1) mod n)*(a*X(2) mod n)*(a*X(3) mod n)*…*(a*X(φ(n)) mod n) mod n


=X(1)*X(2)*X(3)*…*X(φ(n)) mod n。


对比等式左右两端,因为X(i)(1≤i≤φ(n))与n互质(即:gcd(X(i),n)==1) ,


故: a^φ(n)=1 mod n (恒等于)成立。


 

费马小定理的相关证明:

若正整数 a与素数p互质,则有a^(p-1)=1 mod n(恒等于)

由于φ(p)=p-1 且 a^φ(n)=1 mod n ,又有此处的p==n;


故:a^(p-1)=1 mod n成立。


此定理可以用来简化幂的模运算:


例如: 计算 7^222的个位数,实际上是求7^222被10除的余数。


     且7与10互质,φ(10)=1,由欧拉定理知7^4= 1mod 10


     故7^222=(7^4)^55*(7^2)=>(1^55)*(7^2)=>49=>9 mod 10




欧拉函数的延伸:


于或等于n的数中,与n互质的数的总和为:φ(x) * x / 2  (n>1)。



相关知识参考:


完全余数集合:


定义小于 n 且和 n 互质的数构成的集合为 Z(n) ,称呼这个集合为 n 的完全余数集合。 显然 |Z(n)| =φ(n) 。



同余定理:


     如果 a mod b = c 则有(a+kb) mod b =c(k为非0整数)


     如果 a mod b = c 则有(ka) mod b =kc (k为正整数)


     (a+b) mod c =((a mod c)+(b mod c )) mod c;


     (a*b) mod c=((a mod c)*(b mod c)) mod c


 


 


 


欧拉函数模板


   (1)直接求小于或等于n,且与n互质的个数:


  int Euler(int n)


{


    int ret=n;


    for(int i=2;i<=sqrt(n);i++)


     if(n%i==0)


      {


        ret=ret/i*(i-1);//先进行除法防止溢出(ret=ret*(1-1/p(i)))


        while(n%i==0)


          n/=i;


     }


    if(n>1)


          ret=ret/n*(n-1);


        return ret;


}


 


筛选模板:求[1,n]之间每个数的质因数的个数


#define size 1000001


int euler[size];


void Init()


{


     memset(euler,0,sizeof(euler));


          euler[1]=1;


     for(int i=2;i<size;i++)


       if(!euler[i])


       for(int j=i;j<size;j+=i)


       {


              if(!euler[j])


               euler[j]=j;


               euler[j]=euler[j]/i*(i-1);//先进行除法是为了防止中间数据的溢出


         }


}

void Euler(){int prime[MAXN];prime[1]=1;for(int i=2;i<MAXN;i++){if(prime[i]==0){for(int j=i;j<MAXN;j+=i){if(prime[j]==0){prime[j]=j;}prime[j]=prime[j]*(1-1.0/i);}}}}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 4岁宝宝缺乏自信怎么办 孩子害羞不自信怎么办 说话脸红的人怎么办 胆小自卑不自信怎么办 孩子爱挑衣服怎么办 厌学症的孩子怎么办 小孩太自死了怎么办 宝宝老是得肺炎怎么办 社保卡断档了怎么办 北京儿童怎么办医保卡 股票开户不用了怎么办 高中生玩游戏父母怎么办 高中生爱玩游戏怎么办 宝贝发烧不退烧怎么办 孩子行笔速度慢怎么办 孩子不会读英语怎么办 太注意小孩考试成绩怎么办 二年级成绩很差怎么办 班级差生应该怎么办 班级差生太多怎么办 初三孩子英语差怎么办 初三英语基础差怎么办 学生学习效率低怎么办 摔伤后皮下血肿怎么办 孩子学习效率低怎么办 很多作业没写完怎么办? 小学孩子成绩差怎么办 孩子脚上起水泡怎么办 小学一年级体育课哑铃怎么办 托福成绩失效后怎么办 去外国旅游不适应怎么办 一年级语文成绩差怎么办 一年级小孩成绩差怎么办 一年级小孩基础差怎么办 一年级小孩语文差怎么办 一年级小孩数学差怎么办 一年级小孩理解能力差怎么办 一年级小孩作文差怎么办 一年级小孩记忆力差怎么办 孩子的记忆力不好怎么办 孩子记忆力不好怎么办呢