python7-3 判断完数 判断一个正整数是否为完数。完数定义:一个数的所有因子(包括1)之和等于它自身,这个数就是完数。比如6=1+2+3,6是完数。 输入格式: 例如:输入一个正整数6 输出格式: 输比: 6=1+2+3
时间: 2024-12-22 22:23:33 浏览: 26
在 Python 7.3 中判断一个正整数是否为完数,你可以编写一个函数来计算给定数字的所有因子之和,并检查这个和是否等于原数。下面是一个简单的示例:
```python
def is_perfect_number(num):
if num <= 0:
return "输入的是非正整数"
# 初始化因子和为1,因为每个数的因子至少包含1和它本身
factor_sum = 1
for i in range(2, int(num ** 0.5) + 1): # 只需要检查到sqrt(n),避免重复因子
if num % i == 0:
factor_sum += i
if i != num // i: # 如果i不是num除以i的结果,说明还有一个因子
factor_sum += num // i
# 检查因子和是否等于原数
if factor_sum == num:
return f"{num}={factor_sum}"
else:
return f"{num}不是完数"
# 测试函数
print(is_perfect_number(6)) # 输出:6=1+2+3
```
在这个函数里,我们首先检查输入是否为正整数,然后遍历从2到`sqrt(num)`的所有数,看它们是否能整除`num`。如果是,则将这两个因子加到总和上,并更新因子列表。最后,如果因子和等于原始数值,则返回True,表示它是完数;否则返回False。
阅读全文