酷代码 AI
菜单
服务商

任给一个自然数n,求出这个自然数不同因数的个数。输入 任意一个自然数n。输出 这个自然数的因数个数。

```python def count_divisors(n): """ 计算自然数n的不同因数个数 """ if n <= 0: return 0 count = 0 i = 1 # 只需遍历到sqrt(n) while i * i <= n: if n % i == 0: # 如果i是n的因数 if i * i == n: # i是平方根,只算一个因数 count += 1 else: # i和n/i是两个不同的因数 count += 2 i += 1 return count # 测试示例 if __name__ == "__main__": # 输入自然数n n = int(input("请输入一个自然数n: ")) # 计算因数个数 result = count_divisors(n) # 输出结果 print(f"自然数{n}的不同因数个数为: {result}") ``` 算法说明: 1. 从1开始遍历到√n 2. 当i整除n时: - 如果i² = n,i是平方根因数,计数加1 - 否则i和n/i是两个不同因数,计数加2 3. 时间复杂度:O(√n) 示例运行: ``` 请输入一个自然数n: 12 自然数12的不同因数个数为: 6 ``` 12的因数:1, 2, 3, 4, 6, 12 [2026-01-03 14:32:58 | AI问答 | 328点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多