最小偶倍数
问题描述(来源于LeetCode)
给定一个正整数 n,返回 2 和 n 的最小公倍数(正整数)。
解题思路分析
问题本质
求两个数的最小公倍数(LCM)问题,但其中一个数是固定的2。
数学原理
-
两个数的最小公倍数 = (a × b) ÷ 最大公约数(GCD)
-
对于数字2和任意整数n:
-
如果n是偶数,2和n的最大公约数是2,最小公倍数是n
-
如果n是奇数,2和n的最大公约数是1,最小公倍数是2 × n
-
代码实现
方法一:条件判断法
1 | class Solution: |
算法详解
通过判断n的奇偶性来决定结果:
-
偶数情况:n能被2整除,2和n的最小公倍数就是n本身
-
奇数情况:n不能被2整除,2和n的最小公倍数是2 × n
复杂度分析
-
时间复杂度: O(1) - 一次模运算和条件判断
-
空间复杂度:O(1) - 常数空间
数学证明
定理证明
对于任意正整数n:
-
当n为偶数时,n = 2k (k∈N⁺)
-
GCD(2, n) = 2
-
LCM(2, n) = (2 × n) ÷ 2 = n
-
-
当n为奇数时,n = 2k + 1 (k∈N)
-
GCD(2, n) = 1
-
LCM(2, n) = (2 × n) ÷ 1 = 2n
-
测试用例
| 测试用例 | 输入n | 预期输出 | 说明 |
|---|---|---|---|
| 1 | 5 | 10 | 奇数情况 |
| 2 | 6 | 6 | 偶数情况 |
| 3 | 1 | 2 | 最小奇数 |
| 4 | 2 | 2 | 最小偶数 |
| 5 | 100 | 100 | 较大偶数 |
边界情况考虑
-
n = 1(最小奇数)
- 输出:2
-
n = 2(最小偶数)
- 输出:2
-
大数情况
-
n = 10⁹(奇数):输出2 × 10⁹
-
n = 10⁹(偶数):输出10⁹
-
扩展应用
相关概念
-
最大公约数(GCD)
-
最小公倍数(LCM)
-
质数与合数
实际应用场景
-
周期性任务调度
-
信号处理的采样频率
-
工程中的齿轮传动比计算
总结
这道题目虽然简单,但涉及了数论中的基本概念:
-
奇偶性判断:使用模运算
-
最小公倍数:理解LCM的计算原理
-
条件逻辑:根据不同情况采用不同策略
解题的关键在于发现数字2的特殊性,从而简化计算。这种方法体现了利用问题特性优化解的重要思想。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 笺札!









