数论 欧拉函数

欧拉函数

剩余系

  • 同余类:对于 a[0,m1] ,集合 {x|x=a+km,kZ} 的所有数模 m 同余,余数都是 a ,该集合称为一个模 m 的同余类,简记为 a¯modm

    • m 的同余类一共有 m 个,分别为 0¯,1¯,,m1¯ ,他们构成 m 的完全剩余类
    • 同余类也叫剩余类
  • 完全剩余系:对于 mZ+ ,有 r1,r2,,rm1,rmm 个整数,且两两模 m 不同余,这些同余类所组成的集合叫做模 m 的完全剩余系

    • 从模 m 的每个剩余类中任取一个数,所得到的 m 个数是一个模 m 的完全剩余系

    • {x1,x2,,xm} 是模 m 的完全剩余系, gcd(a,m)=1,bZ ,有:

      {a×x1+b,a×x2+b,,a×xm+b}m

    • m 的完全剩余系有且仅有 m 个整数, {0,1,2,,m1} 是模 m 最小的非负完全剩余系

    • 2|m 时: {m2+1,,1,0,1,,m2} 是模 m 的绝对值最小的完全剩余系

    • 2| m 时: {m12,,1,0,1,,m12} 是模 m 的绝对值最小的完全剩余系

  • 简化剩余系:对于模 m 的完全剩余系,从中选出与 m 互质的同余类元素,组成 m 的简化剩余系

    • 10 的简化剩余系为 {1¯,3¯,7¯,9¯}
    • m 的简化剩余系的元素数量记为 φ(m)
  • 性质

    • gcd(a,m)=gcd(b,m)=1 ,有 ab%m 属于 m 的简化剩余系
    • 若集合 A={x1,x2,,xφ(m)} 是模 m 的简化剩余系, aZ,gcd(a,m)=1 ,则集合 B={ax1,ax2,,axφ(m)} 也是模 m 的简化剩余系
    • gcd(m1,m2)=1,m1,m2N,X={x1,x2,,xφ(m1),Y={y1,y2,,yφ(m2)} 。集合 X,Y 分别是模 m1,m2 的简化剩余系,则 A={k|k=m1y+m2x,xX,yY} 是模 m1×m2 的简化剩余系
    • 在数列 {1,2,,n} 中,与 n 互质的整数之和是 12nφ(n)
    • nN+,d|nφ(d)=n
    • p|x ,有 φ(p×x)=p×φ(x)

欧拉函数

  • 定义: φ(m) 表示 {0,1,2,3,,m1} 中与 m 互质的数的个数

    • φ(10)=4  (1,3,7,9)
  • 通式:

    φ(x)=x×i=1n(11pi)

    • 上式中:pix,xN+
    • 规定:φ(1)=1
    • x 为质数,则 x[1,x1] 中每一个数互质,有 φ(x)=x1
  • 证明

    i)  x  φ(x)=x1=x×(11x) ii)  x=pk,p xp [1,x1]px [1,x1]p1×p,2×p,,pk1×p  pk1 φ(x)=pkpk1=pk×(11p)=x×(11p) iii)  x  :x[2,+)xZ x  x  x=p1k1×p2k2×pnkn, p1,p2,,pn  ii)    φ(p1k1)=p1k1×(11p1)    φ(p2k2)=p2k2×(11p2)        φ(pnkn)=pnkn×(11pn) φ(x)=φ(p1k1×p2k2××pnkn)  p1k1,p2k2,,pnkn  ,φ(x)=φ(p1k1×p2k2××pnkn) =φ(p1k1)×φ(p2k2)××φ(pnkn) =p1k1×p2k2××pnkn×(11p1)×(11p2)××(11pn) =x×(11p1)×(11p2)××(11pn) =x×i=1n(11pi)  i)ii)iii),φ(x)=x×i=1n(11pi)

    • 关于上述证明用到的欧拉函数数积性的证明

      证明:若 gcd(m,n)=1 ,有 φ(m×n)=φ(m)×φ(n)

      x[1,mn]xZ 构造为下面的矩阵

      123rmm+1m+2m+3m+r2m2m+12m+22m+32m+r3m(n1)m+1(n1)m+2(n1)m+3(n1)m+rnm

      φ(mn) 是上面的矩阵中与 mn 互质的数的个数

       gcd(a,m)=1,gcd(b,m)=1,gcd(ab,m)=1

      上面的矩阵中与 mn 互质的数就是同时与 n,m 互质的数

      gcd(km+r,m)=gcd(r,m),0r<m,kZ+ ,所以当 gcd(r,m)=1 时第 r 列的数都与 m 互质,故与 m 互质的元素共有 φ(m)

      假定 gcd(m,r)=1 ,有 {r,r+m,r+2m,,r+(n1)m} 均与 m 互质

      {0,1,2,,n1} 是模 n 的完全剩余系且gcd(n,m)=1,rZ+

      {r,r+m,r+2m,,r+(n1)m},rZ+ 也是模 n 的完全剩余系

      每一列都恰好有 φ(n) 个数与 n 互质

      由乘法原理,同时与 n,m 互质的数有 φ(n)×φ(m) 个,即: φ(mn)=φ(m)×φ(n),gcd(m,n)=1

  • 性质及证明

    • mnφ(m×n)=φ(m)×φ(n) 证明见上

    • p | xφ(p×x)=p×φ(x)

    : p | x x=p1×p2××pn p=pr1×pr2××prk p×xx φ(p×x)=p×x×i=1n(11pi) φ(p×x)=p×φ(x)

    • 2| nφ(2×n)=φ(n)

    : 2| nn2 pi n φ(2×n)=2×n×(112)×i=1n(11pi)    =n×i=1n(11pi)=φ(n)

    • A={xZ|x[1,n]xn}A=12nφ(n)

      :  {a1,a2,,aφ(n)},(1ai<n)n ainnain      1ai<n1nai<n {a1,a2,,aφ(n)}={na1,na2,,naφ(n)} a1+a2++an=(na1)+(na2)++(naφ(n))a1+a2++an=12nφ(n)

    • nN+,d|nφ(d)=n

      :i) n=1,ii) n=k, n=k×pt,ppk kA={1,,k} B={x|x=a×pb,aA,b[1,t]}pkx{x|x=pi,i[1,t]},yA  xy k×ptAB,AB=d|k×ptφ(d)=d|kφ(d)+i=1td|kφ(d×pi)      =k+i=1t(d|k(φ(pi)×φ(d)))      =k+i=1t(d|k((pipi1)×φ(d)))(欧拉函数通式)      =k+i=1t(pi1×(p1)×d|kφ(d))      =k+k×(p1)×i=1tpi1      =k+k×(p1)×1×(1pt)1p(等比数列求和)      =k+k×(pt1)=pt×k=n i)ii),nN+,d|nφ(d)=n

  • 用法

    • O(n)
    template<class t>t phi(t n){
        t res=n;
        //n在区间[√n,n]之间的质因子最多有一个为n
        for(t i=2;i*i<=n;i++){
            //公式 phi(n)=n*1/i*(i-1)
            if(n%i==0)res=res/i*(i-1);
            while(n%i==0)n/=i;//除掉所有的因子i
        }
        //如果n!=1说明存在大于√n的质因子为n
        if(n>1)res=res/n*(n-1);
        return res;
    }
    
  • 筛法求欧拉函数:给定一个正整数 n[1,n] 中每个数的欧拉函数

    • 需要的基本性质

      1) p, φ(p)=p12) p p|x ,φ(p×x)=p×φ(x)3) p p|  x ,φ(p×x)=φ(p)×φ(x)

    • 用法 O(n)

      typedef long long lld;
      lld phi[maxn],pri[maxn],cnt;
      bool mark[maxn];
      void getphi(int n){
          phi[1]=1;
          for(int i=2;i<=n;i++){
              if(!mark[i]){//i是质数
                  pri[++cnt]=i;
                  phi[i]=i-1;
              }
              for(int j=1;j<=cnt&&i*prime[j]<=n;++j){
                  mark[i*pri[j]]=1;
                  if(i%pri[j]==0){
                      phi[i*pri[j]]=pri[j]*phi[i];
                      break;
                  }
                  phi[i*pri[j]]=(pri[j]-1)*phi[i];
              }
          }
      }
      

欧拉定理

  • 对于任意 a,n,gcd(a,n)=1 ,有 aφ(n)1(modn)

    : n  R={x1,x2,,xφ(n)} S={a×x1%n,a×x2%n,,a×xφ(n)%n} an S=R x1×x2××xφ(n)=(a×x1%n)×(a×x2%n)××(a×xφ(n)%n)      =(a×x1)×(a×x2)××(a×xφ(n))%n      =aφ(n)×x1×x2××xφ(n)%n 1=aφ(n)%n aφ(n)1(modn)

posted @   Locked_Fog  阅读(328)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示
主题色彩