• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

会点儿code

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

欧拉函数

欧拉函数

欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数的个数,记做:φ(n),其中φ(1)被定义为1,但是并没有任何实质的意义。

定义小于n且和n互质的数构成的集合为Zn,称呼这个集合为n的完全余数集合。

显然,对于素数p,φ(p)= p -1.对于两个素数p、q,他们的乘积n = pq 满足φ(n) =(p-1)(q-1)

证明: 考虑n的所有余数集An = { 0,1,2,....,pq -1}

           而不和n互质的集合由下面三个集合的并构成:

         1) 能够被p整除的集合{p,2p,3p,....,(q-1)p} 共计q-1个

         2) 能够被q整除的集合{q,2q,3q,....,(p-1)q} 共计p-1个

         3) {0}

          很显然,1、2集合中没有共同的元素,因此Zn中元素个数 = pq - (p-1 + q- 1 + 1) = (p-1)(q-1)

推论:设n是正整数,若n的标准分解式为n=p1^q1*p2^q2*........ ps^qs,则φ(n)计算公式是φ(n)=p1^(q1-1)*p2^(q2-1)...........ps^(qs-1)*(p1-1)(p2- 1)(p3-1)...(ps-1)

欧拉定理

对于互质的整数a和n,有aφ(n) ≡ 1 mod n

证明:首先证明下面这个命题:

            对于集合Zn={x1,x2,...,xφ(n)},考虑集合

             S = {ax1 mod n,ax2mod n,...,axφ(n)mod n}

             则S = Zn

             1) 由于a,n互质,xi也与n互质,则axi也一定于p互质,因此

                  任意xi,axi mod n 必然是Zn的一个元素

             2) 对于Zn中两个元素xi和xj,如果xi ≠ xj

                 则axi mod n ≠ axi mod n,这个由a、p互质和消去律可以得出。

                 所以,很明显,S=Zn

        

                 既然这样,那么

         (ax1 × ax2×...×axφ(n))mod n

       = (ax1 mod n × ax2mod n × ... × axφ(n)mod n)mod n

       = (x1 × x2 × ... × xφ(n))mod n

          考虑上面等式左边和右边

          左边等于(aφ(n) × (x1 × x2 × ... × xφ(n))mod n) mod n

          右边等于x1 × x2 × ... × xφ(n))mod n

          而x1 × x2 × ... × xφ(n))mod n和p互质

          根据消去律,可以从等式两边约去,就得到:

          aφ(n) ≡ 1 mod n

推论:对于互质的数a、n,满足aφ(n)+1 ≡ a mod n

费马定理

a是不能被质数p整除的正整数,则有ap-1 ≡ 1 mod p

证明这个定理非常简单,由于φ(p) = p-1,代入欧拉定理即可证明。

同样有推论:对于不能被质数p整除的正整数a,有ap ≡ a mod p

计算方法:

int phi(int n) {
 
for(i=0; i<prime.size(); i++) {
  
if( n%prime[i]==0 ) {
   a 
= prime[i];
   b 
= n/prime[i];
   c 
= gcd(a, b);
   
return phi(a)*phi(b)*c/phi(c);
  }
 }
}


posted on 2008-05-03 00:07  曹某  阅读(208)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3