前言
Min_25筛的时间复杂度和洲阁筛(我不会)一样,都是 O ( n 3 4 l o g n ) O(\frac{n^{\frac{3}{4}}}{logn}) O(lognn43)。但Min_25筛的时空常数,代码复杂度据说比洲阁筛要优秀,甚至可以替代掉洲阁筛,于是我这个学不懂洲阁筛的菜鸡就赶紧跑来学习了一发。
我看的是zzq的博客
目标
设 F ( x ) F(x) F(x)是一个积性函数,现在要求 ∑ i = 1 n F ( i ) \sum_{i=1}^nF(i) i=1∑nF(i)
Min_25筛
若要求一个积性函数的前缀和,我们肯定要先把 F ( p j ) F(p_j) F(pj)的和求出来,其中 p j p_j pj是一个素数。
首先把不大于 n \sqrt n n的素数都筛出来。
由于 F ( p j ) F(p_j) F(pj)大都是素数的幂的形式,所以考虑如何求素数幂的和。
设 g ( x , j ) = ∑ i = 2 x i k [ i 的 最 小 素 因 子 大 于 p j 或 i 是 素 数 ] g(x,j)=\sum_{i=2}^xi^k[i的最小素因子大于p_j或i是素数] g(x,j)=i=2∑