Powerful Number 是一种奇特的亚线性数论筛。
我们先来定义 Powerful Number:如果一个正整数 (n) 的标准分解为:
[n=sum p_i^{k_i}
]
且满足 (forall i, k_igeq 2),那么我们就称 (n) 为一个 Powerful Number。
那么我们一定可以把 (n) 表为 (n=a^2b^3) 的形式。由此我们可以知道,(leq n) 的 Powerful Number 个数为:
[int_1^sqrt n(frac n{x^2})^{1/3} mathrm dx=mathcal O(sqrt n)
]
这是一切的基础。
现在考虑我们要筛某个积性函数 (f),我们先找到另一个容易得到前缀和的积性函数 (g),满足
[g(p)=f(p)
]
然后这时候我们再假设 (f=gotimes h),那么一定有:
[f(p)=g(p)h(1)+g(1)h(p)=f(p)+h(p)
]
也即
[h(p)=0
]
那么可以推知,仅当 (n) 为 Powerful Number 时,才有 (h(n) eq 0),那么有值的 (h) 其实只有 (mathcal O(sqrt n)) 种。
现在来考虑 (f) 的前缀和:
[egin{aligned}
sum_{n=1}^Nf(n)&=sum_{n=1}^Nsum_{dmid n}g(d)h(frac nd)\
&=sum_{d=1}^N h(d)sum_{k=1}^{N/d}g(k)
end{aligned}
]
于是枚举每个可能的 (h),递推计算取值,暴力计算即可。
一些具体的应用可以参见一类积性函数的特殊前缀和问题。