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

Python 实现:输入正整数 n 精准找出 [1, n] 完数,附算法优化提示

```python def find_perfect_numbers(n): def get_proper_divisors_sum(num): # 计算num的所有真因子之和 divisors_sum = 0 for i in range(1, num // 2 + 1): if num % i == 0: divisors_sum += i return divisors_sum perfect_numbers = [] for number in range(1, n + 1): if number == get_proper_divisors_sum(number): perfect_numbers.append(number) return perfect_numbers n = int(input("请输入一个整数n:")) result = find_perfect_numbers(n) print(f"[1, {n}]范围内的完数有:{result}") ``` 三条额外需要注意的逻辑点: 1. 在计算真因子时,循环上限设置为num的一半加一,因为任何大于num一半的数字不可能是num的真因子。 2. 输入需要进行有效性检查,确保输入的是正整数。 3. 对于大范围的n值,此算法效率可能较低,可以考虑优化求解真因子的方法。 ######[AI写代码神器 | 237点数解答 | 2025-01-06 18:44:10]

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