用Python 判断是否为完数
时间: 2024-06-23 20:02:11 浏览: 183
在 Python 中,判断一个数是否为完数(Perfect Number)可以通过遍历该数的所有因子,然后将因子相加,如果和等于原数,那么这个数就是完数。下面是一个简单的函数实现:
```python
def is_perfect_number(n):
if n < 1:
return False
divisors_sum = 0
for i in range(1, int(n**0.5) + 1): # 只需检查到根号n,因为大于根号n的因子和已经包含在较小因子中
if n % i == 0: # i是因子
if i != n // i: # 如果i不等于n除以i(即另一个因子),则添加两次i
divisors_sum += i
divisors_sum += n // i
else:
divisors_sum += i # 如果i等于n除以i,只添加一次
return divisors_sum == n
# 测试函数
number = 6
if is_perfect_number(number):
print(f"{number} 是完数")
else:
print(f"{number} 不是完数")
相关问题
用Python判断是否为完数
在Python中,判断一个数n是否为完数(Perfect Number),是指该数的所有真因数(除了自身外的正因数)之和等于它自身的数值。下面是一个简单的函数,用于检查一个给定的整数是否为完数:
```python
def is_perfect_number(num):
if num <= 1:
return False
else:
sum_of_factors = 1
for i in range(2, int(num**0.5) + 1): # 只需检查到sqrt(n),因为大于sqrt(n)的因子都会有一个对应的较小因子已计算过
if num % i == 0:
factor = i
if factor != num // factor: # 如果i不是num的平方根,则还有一个因子
factor *= num // i
sum_of_factors += factor
return sum_of_factors == num
# 示例用法
print(is_perfect_number(6)) # True,因为6的因数有1, 2, 3,它们的和正好等于6
print(is_perfect_number(28)) # True,因为28的因数有1, 2, 4, 7, 14,它们的和也是28
```
用python判断一个数是否为完数
可以使用以下代码判断一个数是否为完数:
```
n = int(input("请输入一个正整数:"))
sum = 0
for i in range(1,n):
if n % i == 0:
sum += i
if sum == n:
print(n,"是一个完数")
else:
print(n,"不是一个完数")
```
完数是指一个数的所有因子(不包括它本身)之和等于该数本身的数。
阅读全文