洲阁筛是一种能在亚线性时间复杂度内求出大多数积性函数前缀和的筛法。

下面将以求解 为例,具体阐述洲阁筛的原理。

对于任意 内的整数,其至多只有一个 的质因子。

利用 只有 级别个取值的性质来降低时间复杂度。

将 内的所有整数按是否有 的质因子分为两类:

对于前半部分,枚举最大因子,根据积性函数的性质可以转换:

记 ,即 中与 均互质的数的 值之和。

共有 级别种取值,对于每种取值则需要枚举其质因子,所以复杂度为 ,需要优化。

预处理质数的 值前缀和即可快速求出 ,时间复杂度被优化至 。

记 ,即 中所有只含 质因子的数的 值之和。

共有 级别种取值,所以直接转移复杂度为 ,需要优化。

所以一旦发现 就停止转移,记此时的 为 ,之后用到 时,把此时的 值加上 即可。