Curiosity
质因数分解的快速算法
用成对因子、√n 边界和质数候选来组织试除,把大合数快速分解成质因数乘积。
Where this came from
Before you enter
A complete interactive classroom, not just a preview.
Start when you are ready to enter this Stage's 10 scenes and explore, respond, and learn as you go.
10
Scenes
20 min
Estimated
把 360 分解成质因数,最少要试几次?
What this covers
- prime-factorization
- 把一个合数写成质数乘积的唯一表示。
- trial-division
- 从小到大逐个尝试候选除数,找到能整除的因子。
- sqrt-bound
- 因子成对出现,只需检查到 √n。
- skip-composite
- 候选除数只取质数,跳过合数以减少无效检查。
- recursive-divide
- 找到一个因子后继续分解商,缩小问题规模。
Common misconceptions
Many people assume
检查所有比 n 小的数才能保证找全因子
Actually
用 24=3×8 等例子展示因子成对出现,证明较小的因子总在 √n 以内。
Many people assume
找到第一个因子后,剩下的部分必须从头一个一个重新试
Actually
展示分解 72 时先用 2 除掉所有 2,再移到下一个候选,避免重复试除。
Many people assume
合数也必须作为候选除数逐个检查
Actually
说明若 6 能整除 n,则 2 和 3 一定早就整除 n;所以只看质数即可。
Before you start
- 质数、合数、整除的定义
- 能进行简单除法与余数计算
- 会看伪代码或流程图
Not covered here
- Pollard 的 rho 算法
- 费马分解
- 普通数域筛法
- 超大合数的密码学分解
What you'll be able to do
- 能说明为什么只需检查到 √n
- 能用优化步骤分解 180 并写出质因数乘积
- 能比较朴素法、√n 法和质数候选法的试除次数
- 在判断质数、求最大公因数等场景中,也会优先用 √n 边界和质数候选来缩小检查范围。
Written for
已理解质数、合数与整除,能读懂简单循环,但没接触过算法复杂度。
What happens inside
- 01从一个问题开始slideOrientationObserve
提出分解大数的需求,点出本课要学的快速算法。
- 把 360 分解成质因数
- 普通方法为什么慢
- 本课目标:更快更聪明地分解
- 02你的预测quizPredictionPredict
在讲解之前先估计朴素试除法的检查次数,暴露先验想法。
- 预测 97 需要试除到几
- 先凭直觉选择答案
- 带着预测进入算法分析
- 03朴素试除法:逐个试除slideModel buildingObserve
建立最直接的分解模型:从 2 开始逐个尝试。
- 从 2 开始逐个检验
- 能正确分解但试除次数多
- 对 n 需要检查 n-1 次
- 04为什么只检查到 √nslideMisconception repairObserve
用因子成对的规律解释为什么无需试到 n-1。
- 因子成对出现
- 若 d 是因子,n/d 也是因子
- 较小的因子必定 ≤ √n
- 05试除步数模拟器interactivePracticeApply
调节 n,观察试到 n 和试到 √n 的检查次数差距。
- 调节 n 看检查次数
- 对比 limit=n 和 limit=√n
- 观察因子成对出现
- 06检查边界quizAssessmentChoose
检验对 √n 边界的理解。
- 判断 101 需要检查到哪里
- 选出最小充分检查范围
- 巩固因子成对的概念
- 07跳过合数:只用质数slideModel buildingObserve
引入用质数表缩减候选除数的思路。
- 合数候选可以跳过
- 用质数表减少无效试除
- 通常用埃氏筛预先生成质数表
- 08继续分解剩下的部分slideMisconception repairObserve
讲解找到一个因子后如何高效处理余下的商。
- 找到一个因子后继续分解商
- 同一个质数可能重复出现
- 从当前质数继续而非重头开始
- 09实战:分解 180quizApplicationConstruct
用优化步骤完整分解 180,并写出质因数乘积。
- 按优化步骤完成试除顺序
- 写出 180=2²×3²×5
- 应用 √n、质数候选和继续除法
- 10三种方法对比与小结slideSynthesisObserve
汇总朴素法、√n 法和质数候选法的效率差异。
- 朴素 n 次 vs √n 次 vs 只用质数
- [Table] 方法对比:检查范围、次数、适用场景
- 核心口诀:成对因子、√n 边界、质数候选
Discussion
Discussion threads for a Stage aren't available yet.
Where this leads
Next on this path
Other branches
More from this author
Other versions of this lesson
Explore more