龙空技术网

python经典案例:输出范围内的"完数"

菜就多练呀 104

前言:

眼前同学们对“定义函数python输出n的所有因子”大概比较关注,兄弟们都想要分析一些“定义函数python输出n的所有因子”的相关资讯。那么小编在网络上网罗了一些关于“定义函数python输出n的所有因子””的相关文章,希望咱们能喜欢,兄弟们一起来了解一下吧!

要求:一个数如果恰好等于除它本身外的因子之和,这个数就称为"完数"。

例如6=1+2+3(6的因子是1,2,3)

实现代码如下:

#!/usr/bin/python#coding:utf-8#author:菜就多练呀def perfect_numbers(n):    #定义一个函数 sum_of_divisors(num),该函数计算一个数的所有因子之和。    def sum_of_divisors(num):        s = 1        for i in range(2, int(num ** 0.5) + 1):            if num % i == 0:                s += i                if i != num // i:                    s += num // i        return s    #使用列表推导式来创建一个列表,其中包含从2到n之间的所有完数。    #对于列表中的每个数num,如果 sum_of_divisors(num) 等于num,则该数是完数。    return [num for num in range(2, n) if sum_of_divisors(num) == num]perfect_numbers = perfect_numbers(1001)print(perfect_numbers)

输出结果:

[6, 28, 496]

你是否可以输出完数的过程中输出其因子数呢?

例如:6=1+2+3,28=1+2+4+7+14,496=1+2+4+8+16+31+62+124+248

欢迎大家将实现过程发到评论区。

标签: #定义函数python输出n的所有因子 #输出100以内完数及其相应的因子因子存于列表python #python因子之和等于完数 #python因子之和完数