Python求完全数
时间: 2024-10-25 20:05:35 浏览: 21
在Python中,一个完全数是指它的所有真因数(除了本身以外的正因子)之和等于它自身的数。例如,6是一个完全数,因为1+2+3=6。以下是通过编写一个函数来判断一个给定整数是否为完全数的一种简单方法:
```python
def is_perfect_number(n):
if n < 1:
return False
divisors_sum = sum(i for i in range(1, int(n ** 0.5) + 1) if n % i == 0)
return divisors_sum == n
# 示例
n = 6
if is_perfect_number(n):
print(f"{n} 是一个完全数")
else:
print(f"{n} 不是一个完全数")
# 使用函数检查其他数字是否为完全数
other_numbers = [28, 496, 8128] # 可以替换为你想测试的数字列表
for num in other_numbers:
if is_perfect_number(num):
print(f"{num} 是一个完全数")
else:
print(f"{num} 不是一个完全数")
```
相关问题
python之求完全数
在Python中,我们可以使用for循环和if语句来求解完全数。首先,我们可以定义一个函数来判断一个数是否是完全数。该函数将接受一个整数作为参数,并返回一个布尔值来表示该数是否是完全数。接下来,我们可以使用一个循环来遍历从1到指定范围(例如1000)的所有整数,并调用刚才定义的函数来判断每个整数是否是完全数。如果是完全数,则将其添加到一个列表中。最后,我们可以打印出这个列表来获取所有的完全数。
以下是一个示例代码:
```
def is_perfect_number(num):
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
if sum(factors) == num:
return True
return False
perfect_numbers = []
for i in range(1, 1001):
if is_perfect_number(i):
perfect_numbers.append(i)
print("1000以内的完全数:", perfect_numbers)
```
运行以上代码,你将会得到1000以内的完全数列表。
python求所有完全数
以下是 Python 代码,可以找出小于等于给定数的所有完全数:
```python
def is_perfect_number(num):
divisors = []
for i in range(1, num):
if num % i == 0:
divisors.append(i)
return sum(divisors) == num
def get_perfect_numbers(n):
perfect_numbers = []
for i in range(1, n+1):
if is_perfect_number(i):
perfect_numbers.append(i)
return perfect_numbers
n = int(input("请输入一个正整数:"))
result = get_perfect_numbers(n)
print("小于等于", n, "的所有完全数为:", result)
```
代码中,`is_perfect_number` 函数用于判断一个数是否为完全数,`get_perfect_numbers` 函数用于获取小于等于给定数的所有完全数。通过输入一个正整数,可以将小于等于该数的所有完全数输出。
阅读全文