🎁 当前为 免费试看 内容 · 开通VIP 解锁 CSP-J/S 集训全部六大模块 + 真题模考 + 高分技巧

GCD / LCM 最大公约数 / 最小公倍数

所属模块 竞赛专用数学初赛分值 约 2–4 分出题类型 选择题难度 ★★☆☆☆近5年频次 每1–2年 1 题

基础概念

基通俗讲解

GCD(最大公约数)是能同时整除两数的最大正整数;LCM(最小公倍数)是两数公共倍数里最小的。二者关系:a×b = gcd×lcm。

核心必背考点

背直接默写拿分
  • 辗转相除:gcd(a,b)=gcd(b,a%b),b=0 时 gcd=a。
  • lcm(a,b)=a/gcd(a,b)*b(先除后乘防溢出)。
  • gcd(a,0)=a;gcd(a,a)=a。

高频难点 / 拉分考点

难考场极易丢分

算 lcm 写成 a*b/gcd 可能溢出(a*b 超大)。规范:a/gcd*b 先除后乘。

出题陷阱

坑文字套路
  • gcd(0, x) = x,别误以为 0。
  • 多个数的 gcd/lcm 可两两合并。

90分高分技巧

技速算捷径

小数字直接分解质因数取最小/最大幂次得 gcd/lcm;大数字用辗转相除,手算几步即出。

梯度真题

基础gcd(48,36)

48%36=12,36%12=0 → 12。

C++
1int gcd(int a,int b){ return b?gcd(b,a%b):a; }
2gcd(48,36);
▍解析:答案 12。
中档lcm(12,18)

gcd=6,lcm=12/6*18=36。

▍解析:答案 36。
压轴lcm 防溢出写法

先除后乘。

C++
1long long lcm(long long a,long long b){
2 return a/gcd(a,b)*b; // 先除再乘
3}
▍解析:避免 a*b 溢出。

记忆口诀

技📌 记忆口诀

“辗转相除取余尽,b为零时a是根;公倍先除后乘好,乘除交换不溢损。”

📝 本节自测共 6 题

做完点「提交本节自测」即时判分;单选 / 多选 / 填空混合,答错可一键收入错题本。

gcd(12, 18) 等于?
lcm(4, 6) 等于?
gcd(a,b) = gcd(b, a mod b) 是哪种算法?
下列属于组合数学常用结论的有?(多选) 多选题 中
2 的 10 次方等于 ____ 。(填空) 填空题 易
用扩展欧几里得求 gcd(30, 12) = ____ 。(填空) 填空题 难

🧭 学习路径

📚 前置
📍 本页
最大公约数与最小公倍数
🔜 后继
收藏后可在 错题本 / 收藏页 查看(仅保存在本机浏览器)
📚 本站为 www.xxw123.com 之「CSP-J/S 初赛集训」栏目 ↩ 返回网站首页

📐 公式速查面板

📝 我的笔记

写下你的心得、易错点、口诀…

已输入 0 字 · 仅存本机 ✓ 自动保存