数论 专题整理
东西多,而且比较高妙,和数学的关系较大。
没写完,才写了一点,先去冲csp了,冲完再更
基础
质数, 分解质因数,整除,互质,gcd/lcm
放一起是因为都很基本
trick: 利用质因子间的独立性, 分解问题
例1
求 所有数的 lcm,,1s
先筛出来质数。考虑这些数的lcm,就是每种质数取最高次
最高能取多少次?对于每个 ,取最大的 使得 ,那它就是 次。
枚举每个 ,计算 ,乘起来。
复杂度:
例2 SDOI2008沙拉公主的困惑
这里用到一个东西: 互质的规律性
对于一个 ,设 表示 是否与 互质 (1互质,0不互质),那么
那对于这个题,计算出 即可。
就把 分解质因数计算即可。讨论一下 的情况。
例3 CF1295D
首先把 约掉一个 。然后就变成:
计算多少 满足 ,也就是 和 互质
根据互质的规律性,我们发现这玩意可以平移,然后就等价于有多少个 和 互质。这玩意就是 。
考虑到我们约掉了一个 ,也就是说,答案是
例4 CF615D
求 所有因数的积。 用分解质因数的形式给出,质数的个数 ,每个质数都在 以内。
有一个东西: 的因数,相当于是 分解质因数后每个 ,选择一个指数 ,然后把 乘起来。这个方法可以得到 的所有因数。
因此,我们用这个生成法,考虑每个质数 的贡献,设它是 次。那它显然可以取 次,都可以。这些乘起来就是 。
然后它被算了多少次呢?显然,其它的质因数可以随便取,每取一次就会把它算一次。那把其它质因数的指数 乘起来,就是它被算的次数。
然后把每个贡献乘起来就行了。
【推荐】国内首个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】