筛 sigma_k
问题
定义 \(\sigma_k(n)\) 表示 \(n\) 的所有约数的 \(k\) 次方和,即
\[\sigma_k(n)=\sum_{d\mid n}d^k
\]
问题:求 \(\sigma_k(1),\sigma_k(2),\cdots,\sigma_k(n)\) .
线性筛
- 素数:直接 \(k\) 次方 .
- 没有的素因子:乘 \(k\) 次方 .
- 素因子:除掉再 \(k\) 次方 .
看不懂可以看 BZOJ2813 题解 .
杜教筛
令 \(\operatorname{Id}_k(n)=n^k\),则由定义:
\[\mu*1=\mathrm{Id}_k
\]
\[\sigma_k=1*\mathrm{Id}_k
\]
于是
\[\mu*\sigma_k=\mathrm{Id}_k
\]
杜教筛即可 .
或者 Powerful Number 筛,但是我不会 .
复杂度不会算 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/16040275.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ