Min_25筛

有(没)什么用?

求解积性函数 F 的前缀和

i=1nF(i)

做法

首先假设 F(i)=ik
Pi 为从小到大的第 j 个质数
g(x,j)

g(x,j)=i=1x[i为质数或最小质因子>Pj]F(i)
g(x,0) 不包括 f(1) 的贡献

求解 g

Pj2>x,则不存在 x 以内的合数的最小质因子大于 Pj

那么 g(x,j)=g(x,j1)

否则,Pj2x,考虑从 g(x,j1) 推过来

显然 g(x,j1) 中多了最小质因子为 Pj 的那些合数的贡献,设为 R

设这些合数为 tPj,贡献即 tkPjk

要满足这些合数的最小质因子为 Pjt 要满足最小质因子 Pj

提出 Pjk ,所以 R=(g(xPj,j1)小于 Pj 的质数的贡献)Pjk

也就是 R=Pjk(g(xPj,j1)g(Pj1,j1))

(因为 Pj1 以内为质数或最小质因子 >Pj1 的只有质数)

总结一下就是

g(x,j)={g(x,j1),Pj2>xg(x,j1)Pjk(g(xPj,j1)g(Pj1,j1)),Pj2x

求解前缀和

h(x)=i=2x[i 为质数 ]F(i)

假设 axPaxx 的最大的数

那么 h(x)=g(x,ax)

再设 S(n,j)=i=1n[i的最小质因子Pj]F(i)

S(n,0) 不包括 f(1) 的贡献

分成两个部分计算

  1. i 为质数,贡献即为 h(n)h(Pj1)

  2. i 为合数:

枚举最小质因子 Pk 及其的指数 e (这里的 kF(i)=ik 不是一个)

贡献为

kjePke+1n(F(Pke)S(npke,k+1)+F(Pke+1))

首先积性函数的性质有前面的一部分

kje=1Pke+1nF(Pke)S(npke,k+1)

而这样就没有算到 F(Pke) 的贡献,加回来即可

答案就是 S(n,1)+F(1)

posted @   Cyhlnj  阅读(286)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示