筛 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 筛,但是我不会 .

复杂度不会算 .

posted @ 2022-03-22 17:06  Jijidawang  阅读(55)  评论(0编辑  收藏  举报
😅​