判断完数,并求出其因子
时间: 2024-12-15 08:21:06 浏览: 10
判断一个数是否为完数,可以通过计算该数的因子之和是否等于该数本身来判断。如果因子之和等于该数本身,则该数为完数。
求一个数的因子可以通过从1到该数本身的平方根循环判断是否整除来实现。具体来说,从1开始循环到该数的平方根,如果该数能够被当前循环到的数整除,则该数是该数的因子之一。同时,将当前因子和该数除以当前因子的结果加起来,可以得到该数的所有因子之和。
下面是一个Python实现的示例代码:
```python
import math
def is_perfect_number(num):
factors_sum = 1
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
factors_sum += i
if i != num // i:
factors_sum += num // i
return factors_sum == num
def get_factors(num):
factors = []
for i in range(1, int(math.sqrt(num))+1):
if num % i == 0:
factors.append(i)
if i != num // i:
factors.append(num // i)
return factors
# 测试
print(is_perfect_number(28)) # True
print(get_factors(28)) # [1, 2, 4, 7, 14, 28]
```
阅读全文