求LCM(a,b)=n的(a,b)的总对数(a<=b)

a=p1a1p1a1..........pnan
b=p1b1p1b1..........pnbn
lcm(a,b)=p1max(a1,b1)p2max(a2,b2)..........pnmax(an,bn)=n
假定a<=b
所以对n进行质因数分解,计算出每个质因数的指数部分,比如其中一部分pnk则说明max(an,bn)=k,那么如果an=k,那么bnk+1种取值方法,同理如果bn=k,那么ank+1种取值方法,那么对于这个质因数我们有2(k+1)1种取值方法,一开始ans=1,对于每个质因数乘以其贡献,那么除了a=b=n的情况,其他都计算了两次,由于最后我们要的是(a<=b)的方案数,那么ans=ans/2+1即可

posted @   GrayKido  阅读(256)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示
主题色彩