最小公倍数(LCM)算法 最小公倍数可通过公式计算: LCM(a, b) = |a × b| / GCD(a, b) 其中GCD(最大公约数)用欧几里得算法求解。 --- 1. 程序流程图 ```mermaid graph TD A[开始] --> B[输入正整数a, b] B --> C[计算GCD: 欧几里得算法] C --> D[LCM = a * b / GCD] D --> E[输出LCM] E --> F[结束] ``` 欧几里得算法子流程: ```mermaid graph TD G[开始] --> H[若b=0, 返回a] H --> I[否则, 计算a mod b] I --> J[递归: GCD(b, a mod b)] J --> K[返回GCD] ``` --- 2. N-S图(盒图) ``` +-----------------------------+ | 输入正整数a, b | +-----------------------------+ | 计算GCD(a, b): | | while b ≠ 0: | | t = b | | b = a mod b | | a = t | | GCD = a | +-----------------------------+ | LCM = a * b / GCD | +-----------------------------+ | 输出LCM | +-----------------------------+ ``` --- 3. PAD图 ``` 开始 ↓ 输入a, b ↓ [计算GCD] →→ [while b≠0] →→ t=b, b=a mod b, a=t ↓ GCD = a ↓ LCM = (a * b) / GCD ↓ 输出LCM ↓ 结束 ``` --- 代码实现(Python示例) ```python def gcd(a, b): while b: a, b = b, a % b return a def lcm(a, b): return a * b // gcd(a, b) a = int(input("输入a: ")) b = int(input("输入b: ")) print("LCM:", lcm(a, b)) ``` 注意事项: 1. 输入需为正整数,否则需添加校验逻辑。 2. 欧几里得算法中,`a`和`b`的初始顺序不影响结果。 3. 计算LCM时使用整除(`//`)避免浮点数误差。 [2025-05-13 13:35:33 | AI写代码神器 | 527点数解答]