淘先锋技术网

首页 1 2 3 4 5 6 7

完数(Perfect number)是指一个数等于除它本身以外的所有因子之和,例如6就是完数,因为6=1+2+3。

python求解完数

在Python中,可以使用下面的代码判断一个数是否为完数:


def is_perfect_number(num):
    sum = 0
    for i in range(1, num):
        if num % i == 0:
            sum += i
    if sum == num:
        return True
    else:
        return False

使用该函数,可以找出指定范围内的所有完数:


def find_perfect_numbers(start, end):
    perfect_numbers = []
    for i in range(start, end+1):
        if is_perfect_number(i):
            perfect_numbers.append(i)
    return perfect_numbers

调用该函数,例如:find_perfect_numbers(1, 1000),就可以找出1到1000之间的所有完数。

需要注意的是,完数并不是每个整数都有的特性,目前已知的完数只有6、28、496、8128等若干个,而且它们都是偶数。因此,如果需要找到某个范围内的完数,应当先筛选出偶数。