酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

Python 自然数因数个数求解:质因数分解法详解与示例

## 🔍 解题思路 计算自然数 n 的不同因数个数,核心是利用质因数分解。若 n = p₁^a₁ × p₂^a₂ × … × pₖ^aₖ,则因数总数为 (a₁+1)(a₂+1)…(aₖ+1)。 ## 📝 实现步骤 1. 对 n 从 2 开始试除,记录每个质因数的指数。 2. 每找到一个质因数 p,不断除以 p 直到不能整除,同时累计指数。 3. 最后若 n 剩余大于 1,说明剩余部分是一个质因数,指数为 1。 4. 将所有 (指数+1) 相乘,得到总数。 ## 💻 代码实现(Python) ```python def count_factors(n): if n == 1: return 1 total = 1 p = 2 while p * p <= n: exponent = 0 while n % p == 0: n //= p exponent += 1 if exponent > 0: total *= (exponent + 1) p += 1 if p == 2 else 2 # 只检查2和奇数 if n > 1: total *= 2 # 剩余一个质因数,指数为1 return total n = 6 print(f"total={count_factors(n)}") # 输出 total=4 ``` ## 🧪 示例验证 n=6:质因数分解为 2¹ × 3¹,因数个数 = (1+1)×(1+1) = 4。 n=12:分解为 2² × 3¹,个数 = (2+1)×(1+1) = 6。 n=16:分解为 2⁴,个数 = 4+1 = 5。 ## ⏱️ 复杂度分析 时间复杂度 O(√n),空间复杂度 O(1)。对于 n 较大时依然高效。 ######[AI问答 | 478点数解答 | 2026-08-23 18:55:43]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]