facsum
10.20
思路:
对于式子进行分析,前面的Phi就是一个很常规的转化,变成i^m。后边一个约数个数,一个Mobius,一个单位函数都是积性函数,所以卷起来也就积性啦(不是积性怎么做嘛。。)
于是就上线性筛了。
对于 if(i % prime[j] == 0) 的情况,也就是 f[p^k*c] = f[p^k] * f[c]。
所以我们只用考虑 f[p^k] 如何计算,d就是p^i,当 (i <= k-2) 是,n/d 中就会有多个p,那么mu自然就是0了,不必计算。
所以 f[p^k] = p^k^m * (g[p^k] * mu[1] * 1 + g[p^(k-1)] * mu[p] * p) = p^k^m * (k + 1 + k * (-p))
= p^k^m * (k - kp + 1)。结束
话说打表找规律也不失为一种很好的方法。
ps:空间限定比较严,那些又开mu又开phi什么的就只有唱歌啦啦啦。
#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL long long