题解 P5495 【【模板】Dirichlet 前缀和】
设
发现这个实际上就是一个关于质因子分解后的指数的高维前缀和,使用类似FMT的方法就可以了。
根据埃氏筛的时间复杂度分析,
for(Rint i = 1;i <= tot;i ++)
for(Rint j = 1;pri[i] * j <= n;j ++)
a[pri[i] * j] += a[j];
设
发现这个实际上就是一个关于质因子分解后的指数的高维前缀和,使用类似FMT的方法就可以了。
根据埃氏筛的时间复杂度分析,
for(Rint i = 1;i <= tot;i ++)
for(Rint j = 1;pri[i] * j <= n;j ++)
a[pri[i] * j] += a[j];