# 最大公约数与最小公倍数

## 第一部分：故事引入

小明要给班级的图书角买书。他发现如果每6本一包，正好包完；如果每8本一包，也正好包完。小明至少买了多少本书？

问题场景

            flowchart LR
        A[买书问题] --> B[6本一包: 正好包完]
        A --> C[8本一包: 正好包完]

求解目标

            flowchart LR
        D[求: 至少买多少本?] --> E[需要方法求解]

## 第二部分：直观观察

### 基本概念

概念 | 定义 | 符号
--- | --- | ---
最大公约数 | 两个数公有的约数中最大的一个 | GCD
最小公倍数 | 两个数公有的倍数中最小的一个 | LCM

### 约数与倍数关系

            flowchart LR
        A[数a] --> B[约数: 能整除a的数]
        A --> C[倍数: a的整数倍]

以6和8为例：

- 6的约数：1, 2, 3, 6

- 8的约数：1, 2, 4, 8

- 6和8的公约数：1, 2

- 6和8的最大公约数：2

- 6的倍数：6, 12, 18, 24, 30, ...

- 8的倍数：8, 16, 24, 32, ...

- 6和8的公倍数：24, 48, 72, ...

- 6和8的最小公倍数：24

## 第三部分：解法一（列举法，适合低年级）

### 核心思路

            flowchart LR
        A[列举约数/倍数] --> B[找公共的]
        B --> C[选最大/最小]

### 求最大公约数步骤

例：求18和24的最大公约数

步骤1: 列举约数

            flowchart LR
        A[18的约数] --> B[1, 2, 3, 6, 9, 18]
        C[24的约数] --> D[1, 2, 3, 4, 6, 8, 12, 24]

步骤2: 找公约数

            flowchart LR
        A[公约数] --> B[1, 2, 3, 6]

步骤3: 选最大的

            flowchart LR
        A[最大公约数] --> B[GCD = 6]

### 求最小公倍数步骤

例：求18和24的最小公倍数

步骤1: 列举倍数

            flowchart LR
        A[18的倍数] --> B[18, 36, 54, 72, 90, ...]
        C[24的倍数] --> D[24, 48, 72, 96, ...]

步骤2: 找公倍数

            flowchart LR
        A[公倍数] --> B[72, 144, ...]

步骤3: 选最小的

            flowchart LR
        A[最小公倍数] --> B[LCM = 72]

## 第四部分：解法二（短除法，适合中年级）

### 核心思路

            flowchart LR
        A[用公因数连续除] --> B[直到互质为止]
        B --> C[计算结果]

### 求最大公约数

例：求18和24的最大公约数

            flowchart TD
        A["2 | 18  24"]
        B["3 | 9   12"]
        C["  | 3   4"]
        A --> B --> C

计算过程：

    2 | 18  24
      ---------
    3 |  9  12
      ---------
         3   4

最大公约数 = 2 × 3 = 6

### 求最小公倍数

例：求18和24的最小公倍数

使用相同的短除过程：

最小公倍数 = 2 × 3 × 3 × 4 = 72

            flowchart LR
        A["GCD = 所有除数的积"] --> B["GCD = 2*3 = 6"]
        C["LCM = 所有数的积"] --> D["LCM = 2*3*3*4 = 72"]

## 第五部分：解法三（质因数分解法，适合高年级）

### 核心思路

            flowchart LR
        A[分解质因数] --> B[提取公共部分]
        B --> C[计算结果]

### 分解质因数

例：求18和24的GCD和LCM

步骤1: 分解质因数

            flowchart LR
        A["18 = 2 * 3 * 3"]
        B["24 = 2 * 2 * 2 * 3"]

步骤2: 求GCD

            flowchart LR
        A[取公共质因数的最低次幂] --> B["GCD = 2^1 * 3^1 = 6"]

步骤3: 求LCM

            flowchart LR
        A[取所有质因数的最高次幂] --> B["LCM = 2^3 * 3^2 = 72"]

### 重要关系

            flowchart TD
        A["GCD(a,b) * LCM(a,b) = a * b"]

        style A fill:#e8f5e9

验证：GCD(18,24) × LCM(18,24) = 6 × 72 = 432 = 18 × 24 ✓

## 第六部分：方法比较

### 方法对比

方法 | 特点 | 适合年级
--- | --- | ---
列举法 | 直观易懂，适合小数 | 低年级
短除法 | 计算简便，常用方法 | 中年级
质因数分解 | 理论清晰，适合大数 | 高年级

### 方法选择

            flowchart TD
        A[求GCD/LCM] --> B{数字大小}
        B -->|小| C[列举法]
        B -->|中| D[短除法]
        B -->|大| E[质因数分解]

## 第七部分：互动练习

### 题 1: 基础题

已知条件

            flowchart LR
        A[求12和18] --> B[GCD = ?]
        A --> C[LCM = ?]

解答过程

            flowchart LR
        A["12 = 2*2*3"] --> C["GCD = 2*3 = 6"]
        B["18 = 2*3*3"] --> D["LCM = 2*2*3*3 = 36"]

答案：GCD(12,18) = 6，LCM(12,18) = 36

### 题 2: 应用题（分糖果）

题目

小明有12颗糖果，小红有18颗糖果。要把它们分别装进袋子里，每袋数量相同且最多，每袋装几颗？

已知条件

            flowchart LR
        A[小明: 12颗] --> C[求: 每袋最多?]
        B[小红: 18颗] --> C

分析

            flowchart LR
        A[每袋数量相同] --> C[求GCD]
        B[每袋最多] --> C
        C --> D["GCD(12,18) = 6"]

答案：每袋最多装6颗

### 题 3: 应用题（发车问题）

题目

公交A线每12分钟发一班车，公交B线每18分钟发一班车。两车同时发车后，至少多少分钟再次同时发车？

已知条件

            flowchart LR
        A[A线: 12分钟] --> C[求: 至少多久?]
        B[B线: 18分钟] --> C

分析

            flowchart LR
        A[再次同时发车] --> C[求LCM]
        B[至少] --> C
        C --> D["LCM(12,18) = 36"]

答案：至少36分钟后再次同时发车

### 题 4: 进阶题

题目

求三个数12、18、24的最大公约数和最小公倍数。

已知条件

            flowchart LR
        A[12, 18, 24] --> B[GCD = ?]
        A --> C[LCM = ?]

解答过程

            flowchart LR
        A["12 = 2*2*3"] --> D["GCD = 2*3 = 6"]
        B["18 = 2*3*3"] --> E["LCM = 2*2*2*3*3 = 72"]
        C["24 = 2*2*2*3"]

答案：GCD(12,18,24) = 6，LCM(12,18,24) = 72

### 题 5: 综合应用题

题目

一个长方形操场，长72米，宽48米。要在四周插彩旗，要求四角都插，且相邻两面彩旗之间的距离相等。最少需要插多少面彩旗？

已知条件

            flowchart LR
        A[长: 72米] --> C[求: 最少几面?]
        B[宽: 48米] --> C

分析

            flowchart LR
        A[距离相等] --> C[求GCD]
        B[最少] --> C
        C --> D["GCD(72,48) = 24"]
        D --> E["周长/间隔 = (72+48)*2/24 = 10"]

答案：最少需要插10面彩旗

## 第八部分：小结

### 知识结构

            flowchart TB
        A[GCD与LCM] --> B[列举法]
        A --> C[短除法]
        A --> D[质因数分解]

### 重要公式

            flowchart TD
        A["GCD(a,b) * LCM(a,b) = a * b"]
        style A fill:#fff3e0

### 解题步骤

            flowchart LR
        A[分析问题] --> B[判断求GCD还是LCM]
        B --> C[选择方法]
        C --> D[计算验证]

### 要点总结

1. 最大公约数用于"最多"、"最长"等问题

2. 最小公倍数用于"至少"、"最少"等问题

3. 短除法是最常用的方法

4. 记住重要关系：GCD × LCM = 两数之积

## 思考题

一个房间长240厘米，宽180厘米。要用正方形地砖铺地，要求地砖尽可能大且正好铺满。需要多少块地砖？每块地砖的面积是多少？

已知条件

            flowchart LR
        A[长: 240厘米] --> C[求: 地砖数量?]
        B[宽: 180厘米] --> D[求: 每块面积?]

解题提示

            flowchart LR
        A[正方形地砖] --> C[边长 = GCD]
        B[尽可能大] --> C
        C --> D["GCD(240,180) = 60"]
        D --> E["数量 = 240*180/(60*60) = 12"]