LOJ #6202. 叶氏筛法(min_25 筛)
题意
求 之间的素数之和 .
题解
一个有点裸的 min_25筛 ? 现在我只会筛素数的前缀和 , 合数的过几天再学吧 .
首先推荐一波 yyb大佬博客 这个人很强 , 别那么fake就好啦
令 显然此处 是完全积性函数 .
我们需要求的就是 .
这个就是 min_25筛的预处理部分 啦.
由 yyb博客 可得 .
对于下面这个表达式 ,
有如下一个递推式 :
这个直接实现是 的复杂度 qwq
然后考虑代码实现 .
首先预处理前 的素数 , (假设处理到了 )
以及 的 前缀和 . (此处可适当处理多一点 , 时间效率会提高)
然后假设我们当前考虑的是 .
直观上共有三步 .
- 且 , 那么此时可以直接用之前预处理的答案 , 因为此时存在有贡献的数只可能为素数 .
- 将 一直缩小到 . 这个利用了递推式 时 的那个定理 .
- 然后不断将 下降, 直至下降到 , 此间需要要递归计算 的值 , 其中后者 可以用前面预处理 , 递归下去也只会有一层 . 而前者会不断递归计算 . 其中 到 的时候 , 就是边界情况 : . 这个是很显然的 , 因为此时所有数都计入了贡献 , 但 是无法给予这个贡献的 . (一开始此处调试许久... )
代码
递归版本
直接按前面的式子模拟即可。
非递归版本
如何做非递归呢?
考虑每次的 都是不断减小的,就是我们会依次会除掉一个个质因子 。
我们从小到大枚举每个质因子 ,然后再从小到大枚举每个 的块 (只有 个)。
然后利用上面的式子直接递推即可。
具体实现的时候由于只有 个,我们对于 的和 的进行分块即可。
__EOF__

本文作者:zjp_shadow
本文链接:https://www.cnblogs.com/zjp-shadow/p/9190865.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/zjp-shadow/p/9190865.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】