Skip to content

积性函数

f(1)=1,f(xy)=f(x)f(y),xy,则 f(x) 是积性函数

f(1)=1,f(xy)=f(x)f(y),则 f(x) 是完全积性函数

f(x)g(x) 均为积性函数,则以下函数也为积性函数:

h(x)=f(xp)h(x)=fp(x)h(x)=f(x)g(x)h(x)=dxf(d)g(xd)
  • f(x) 是积性函数,则 f(x)=f(piki)
  • f(x) 是完全积性函数,则 f(x)=f(piki)=f(pi)ki

常见积性函数

  • 单位函数:ϵ(n)=[n=1]
  • 恒等函数:idk(n)=nkid1(n) 通常简记作 id(n)
  • 常数函数:1(n)=1
  • 除数函数:σk(n)=dndk
  • 欧拉函数:φ(n)=i=1n[(i,n)=1]
  • 莫比乌斯函数:μ(n)={1n=10 d>1,d2n(1)ω(n), ω(n)  n 
  • 约数个数函数:d(n),即 σ0(n)
  • 约数和函数:τ(n),即 σ1(n)

欧拉筛求积性函数

f(x)=f(p1k1)×f(piki),i>1

y=piki,那么 f(x)=f(p1k1)×f(y)

欧拉筛用 x 的最小质因子标记 x,在欧拉筛的过程中,y 已被标记,那么计算 f(x) 时,欧拉筛可以保证 f(y) 已被计算,若 f(p1k1) 可以快速计算,即可快速得到 f(x) 的值。

综上,可在 O(nT(pk)) 时间内计算 f(1)f(n),其中 T(pk) 为计算 f(pk) 的时间复杂度。

使用埃氏筛筛出最小质因子后同样可求。

欧拉函数

公式

φ(n)=n(11pi)

欧拉定理

aφ(m)1(modm),am

费马小定理

ap11(modp),ap,pP

不难发现,费马小定理是欧拉定理的特殊情况。

扩展欧拉定理

ab{abmodφ(m)gcd(a,m)=1abgcd(a,m)1,b<φ(m)abmodφ(m)+φ(m)gcd(a,m)1,bφ(m)(modp)

用于大指数取模。

欧拉降幂

aaa...modm,反复使用 exeuler,对指数不断modφ(m)

结论是一个数自取 O(logn)φ(n) 就会降到 1

简单证明:

  • φ(x),x2 是偶数
  • φ(x)x2,xmod2=0

所以至少是两次缩小一半规模。