P6060 [加油武汉]传染病研究

题意

(T)组询问,每组给定(n,k),求(sumlimits_{i=1}^n sigma_0(i^k))(Tle 10^4)(n,kle 10^7)

做法一

(m)表示成(m=prodlimits_{i=1}^c p_i^{alpha_i}),则(sigma_0(m)=prodlimits_{i=1}^c(alpha_i+1)),则(sigma_0(m^k)=prodlimits_{i=1}^c (kcdot alpha_i+1))
(sigma(m^k))是个关于(k)(c)次多项式((cle 8)
可以线性筛出(iin[1,n])的多项式系数,再求前缀和

做法二

(w(i))(i)的质因数个数
(sumlimits_{i=1}^n sigma_0(i^k)=sumlimits_{i=1}^n k^{w(i)}frac{n}{i})

解释一下:
(d=prodlimits_{i=1}^c p_i^{alpha_i})
将每个约数映射为(g(d)=prodlimits_{i=1}^c p_i^{frac{alpha_i}{k}})
(g(d)|i)等价于(d|i^k),对于给定的(d),可以找到(frac{n}{g(d)})个数字使得(d|i^k)
(sumlimits_{i=1}^n sigma_0(i^k)=sumlimits_{d=1}^{n^k}frac{n}{g(d)})
枚举(i=g(d)),显然有(k^{w(i)})(d)满足(g(d)=i)

原文地址:https://www.cnblogs.com/Grice/p/12932852.html