【学习笔记】数学知识-约数
约数
- 若整数
除以整数 的余数为 ,即 能整除 ,则称 是 的约数, 是 的倍数,记为 。若整数 除以整数 的余数不为 ,即 不能整除 ,则记为 。 - 性质
- 若
为正整数,则 。 - 若
为正整数,则 。
- 若
表示 和 的最大公约数,同理可推广到 。 在数学中用符号记作 。- 性质
- 特别地,若
,有 。 - 若
为正整数,且有 ,则 。- 构造
即可。 - CF1370A Maximum GCD
- 构造
- 若
均为正整数,则 。
- 特别地,若
表示 和 的最小公倍数,同理可推广到 。 在数学中用符号记作 。- 性质
- 若
为正整数,且有 ,则 。- 当
时,构造 即可。 - luogu P5436 【XR-2】缘分
- 当
- 若
- 若
,则 。
九章算术·更相减损法
- 若
,则 。- 证明:设
,移项得 ,又因为 ,故 , 与 同理。
- 证明:设
- 若
,则 。- 证明:设
,移项得 ,又因为 ,故 , 与 同理。
- 证明:设
- 若
,则 。- 例题
- luogu P2152 [SDOI2009] SuperGCD
- 考虑对更相减损法进行优化:
- 当
均为偶数时,有 。 - 当
为偶数, 为奇数时,有 。 - 当
为偶数, 为奇数时,有 。
- 当
- 代码
- 考虑对更相减损法进行优化:
- luogu P2152 [SDOI2009] SuperGCD
- 例题
- 应用
- 若
为正整数,则 。- luogu P10031 「Cfz Round 3」Xor with Gcd
- 证明
- 依据更相减损法,有
,即与 互质的数 成对出现。 - 当
为奇数时,有 。当 为偶数时,有 。
- 依据更相减损法,有
- 若
欧几里得算法
- 若
,则 。-
证明
- 若
,则 。 - 若
,设 ,则 ,又因为 ,则 ,即 ,故 。
- 若
-
时间复杂度为
。 -
代码实现
点击查看代码
int gcd(int a, int b) { return b?gcd(b,a%b):a; }
-
例题
-
扩展欧几里得算法
-
裴蜀定理(贝祖定理,
定理)- 对于任意一对整数
,存在一对整数 ,满足 。- 证明
- 当
时,有一对整数 满足 。 - 若
时,则 。假设存在一对整数 ,满足 ,又因为 ,所以令 ,此时有 。
- 当
- 证明
- 应用
- 若
为正整数且互质,则不在集合 中的最大正整数为 。- luogu P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目
- 证明
无非负整数解。- 证明:易得两组解
。利用 不难求出 的一组特解 ,则其通解可以表示为 ,其中 ,即 取遍整数集合。设 ,易得 ,故 无非负整数解。
- 证明:易得两组解
有非负整数解,其中 为正整数。-
证明:利用
不难求出 的一组特解 ,则其通解可以表示为 ,其中 ,即 取遍整数集合。取一组解 使得 ,故
,故
,故
,故
,故
。又因为
,故
,故
。又因为
,故
有非负整数解,其中 为正整数。
-
- 若
- 推广
- 对于任意非零整数
,存在与之相对应的整数 ,满足 。
- 对于任意非零整数
- 对于任意一对整数
-
代码实现
点击查看代码
int exgcd(int a,int b,int &x,int &y) { if(b==0) { x=1; y=0; return a; } else { int d=exgcd(b,a%b,y,x); y-=a/b*x; return d; } }
- 上述程序求出方程
的一组特解 ,并返回 的最大公约数 。 是 中 最小的整数解。
- 上述程序求出方程
-
推广
- 对于更为一般的方程
,它有整数解当且仅当 。- 令
。 - 特解:先求出
的一组特解 ,此时就得到了 的一组特解 。 的最小正整数解为 ,此时 。- 若
,即存在正整数解时,正整数解的数量为 , 的最大正整数解为 , 的最小正整数解为 , 的最大正整数解为 。 - 若
,即不存在正整数解时, 的最小正整数解为 。
- 若
- luogu P5656 【模板】二元一次不定方程 (exgcd)
- 通解:
。其中 的定义同上, 取遍整数集合 。
- 通解:
- 令
- 对于更为一般的方程
-
例题
数论分块(整除分块)
- 数论分块可以快速计算一些含有除法向下取整的和式,例如
,主要利用了富比尼原理,基本思想是对一段 相同的数进行打包运算。 - 由
,有 至多有 个取值。 - 然后考虑计算每个取值的左右边界。
- 设
,有 ,进而有 。 - 又因为
,有 。 - 进而得到
,有 均相等。
- 设
- 例题
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/17640986.html,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效