前言
从神仙zzq的博客中学来的科技,似乎可以全面吊打洲阁筛??(反正我不会)
设F(x)是一个积性函数,我们需要求出
∑i=1nF(i)
Min_25
并不知道为什么要叫Min_25筛
我们首先需要求出所有F(pj)的和,为了方便我们令F(pj)为与pj有关的一个多项式,比如p^k
这个东西怎么搞呢?设
g(x,j)=∑i=2xik[i是质数或i的最小质因子大于pj]
注意定义是严格大于
那么我们可以推出
g(x,j)=g(x,j−1)−pkj(g(⌊xpj⌋,j−1)−g(pj−1,j−1))
就是减去所有最小质因子为pj的答案,但是小于pj的部分被多减了,要加回去
接下来我们来求答案,设
S(x,j)=∑i=2xF(i)[i的最小质因子大于等于pj]
注意这里是大于等于,而且不包括其他的质数。
那么我们可以推出
S(x,j)=∑i=jm∑e>=1,pe+1i<=xS(⌊xpei⌋,i+1)∗F(pei)+F(pe+1i)
暴力算就行了,复杂度
注意到第一维只有 O(n√) 个值是有用的,离散化一下会非常简单。