Skip to content

积性函数 ​

若 f(1)=1,f(xy)=f(x)f(y),x⊥y,则 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)=∑d∣xf(d)g(xd)
  • 若 f(x) 是积性函数,则 f(x)=∏f(piki)
  • 若 f(x) 是完全积性函数,则 f(x)=∏f(piki)=∏f(pi)ki

常见积性函数 ​

  • 单位函数:ϵ(n)=[n=1]
  • 恒等函数:idk(n)=nk,id1(n) 通常简记作 id(n)
  • 常数函数:1(n)=1
  • 除数函数:σk(n)=∑d∣ndk
  • 欧拉函数:φ(n)=∑i=1n[(i,n)=1]
  • 莫比乌斯函数:μ(n)={1n=10∃ d>1,d2∣n(−1)ω(n),其中 ω(n) 表示 n 的质因子数量
  • 约数个数函数:τ(n)=d(n)=σ0(n)
  • 约数和函数:σ1(n)=∑d∣nd,也常简记为 σ(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∏(1−1pi)

欧拉定理 ​

aφ(m)≡1(modm),a⊥m

费马小定理 ​

ap−1≡1(modp),a∤p,p∈P

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

扩展欧拉定理 ​

ab≡{abmodφ(m)gcd(a,m)=1abgcd(a,m)≠1,b<φ(m)abmodφ(m)+φ(m)gcd(a,m)≠1,b≥φ(m)(modm)

用于大指数取模。

欧拉降幂 ​

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

结论是一个数自取 O(log⁡n) 次 φ(n) 就会降到 1。

简单证明:

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

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