Solution
令指数为 \(k\)
正常反演得到
\[ \sum_{d\mid n}\mu(d)d^k\sum_{i=1}^{\frac nd}i^k \]设 \(f(x)=\sum_{i=1}^xi^k\),它是一个关于 \(x\) 的 \(k+1\) 次多项式
求这个多项式
- 可以插值 \(\mathcal O(n^2)\)(推荐)
- 高斯消元(待定系数法)\(\mathcal O(n^3)\)
- 直接伯努利数 \(\mathcal O(n^2)\),但是很麻烦
设 \(f(x)=\sum_{i=0}^{k+1}f_ix^i\)
\[ \sum_{d\mid n}\mu(d)d^kf\left(\dfrac nd\right)\\ =\sum_{d\mid n}\mu(d)d^k\sum_{i=0}^{k+1}f_i\left(\dfrac nd\right)^i\\ =\sum_{i=0}^{k+1}f_i\sum_{d\mid n}\mu(d)d^k\left(\dfrac nd\right)^i\\ =\sum_{i=0}^{k+1}f_in^i\sum_{d\mid n}\mu(d)d^{k-i} \]右边的 Sigma 有积性,同时注意到只用算 \(\mu(d)\not=0\) 的 \(d\) 即可
也就是对于 \(p_r^{a_r}\),只用算两个数:\(d=1\)、\(d=p_r\),对于其他数,可以 \(\mathcal O(1)\) 算
于是考虑一种种地加入质因子 \(p_i\),维护当前所有数组成的 Sigma,容易维护和计算
标签:数论,题解,sum,nd,mid,mu,一个,dfrac,mathcal From: https://www.cnblogs.com/laijinyi/p/18148394