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

第一部分：故事引入
------------------

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

**问题场景**

.. mermaid::

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

**求解目标**

.. mermaid::

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

第二部分：直观观察
------------------

基本概念
~~~~~~~~

.. list-table::
   :header-rows: 1

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

约数与倍数关系
~~~~~~~~~~~~~~

.. mermaid::

   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

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

核心思路
~~~~~~~~

.. mermaid::

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

求最大公约数步骤
~~~~~~~~~~~~~~~~

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

**步骤1: 列举约数**

.. mermaid::

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

**步骤2: 找公约数**

.. mermaid::

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

**步骤3: 选最大的**

.. mermaid::

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

求最小公倍数步骤
~~~~~~~~~~~~~~~~

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

**步骤1: 列举倍数**

.. mermaid::

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

**步骤2: 找公倍数**

.. mermaid::

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

**步骤3: 选最小的**

.. mermaid::

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

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

核心思路
~~~~~~~~

.. mermaid::

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

求最大公约数
~~~~~~~~~~~~

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

.. mermaid::

   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

.. mermaid::

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

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

核心思路
~~~~~~~~

.. mermaid::

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

分解质因数
~~~~~~~~~~

**例：求18和24的GCD和LCM**

**步骤1: 分解质因数**

.. mermaid::

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

**步骤2: 求GCD**

.. mermaid::

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

**步骤3: 求LCM**

.. mermaid::

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

重要关系
~~~~~~~~

.. mermaid::

   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 ✓

第六部分：方法比较
------------------

方法对比
~~~~~~~~

.. list-table::
   :header-rows: 1

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

方法选择
~~~~~~~~

.. mermaid::

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

第七部分：互动练习
------------------

题 1: 基础题
~~~~~~~~~~~~

**已知条件**

.. mermaid::

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

**解答过程**

.. mermaid::

   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颗糖果。要把它们分别装进袋子里，每袋数量相同且最多，每袋装几颗？

**已知条件**

.. mermaid::

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

**分析**

.. mermaid::

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

答案：每袋最多装6颗

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

**题目**

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

**已知条件**

.. mermaid::

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

**分析**

.. mermaid::

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

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

题 4: 进阶题
~~~~~~~~~~~~

**题目**

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

**已知条件**

.. mermaid::

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

**解答过程**

.. mermaid::

   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米。要在四周插彩旗，要求四角都插，且相邻两面彩旗之间的距离相等。最少需要插多少面彩旗？

**已知条件**

.. mermaid::

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

**分析**

.. mermaid::

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

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

第八部分：小结
--------------

知识结构
~~~~~~~~

.. mermaid::

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

重要公式
~~~~~~~~

.. mermaid::

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

解题步骤
~~~~~~~~

.. mermaid::

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

要点总结
~~~~~~~~

1. 最大公约数用于"最多"、"最长"等问题
2. 最小公倍数用于"至少"、"最少"等问题
3. 短除法是最常用的方法
4. 记住重要关系：GCD × LCM = 两数之积

思考题
------

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

**已知条件**

.. mermaid::

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

**解题提示**

.. mermaid::

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