编写函数most_factors(numbers),该函数从具有最大因子的列表编号中返回整数(除数没有余数)

时间:2018-10-17 00:30:54

标签: python integer

我必须编写一个函数most_factors(numbers),该函数将从具有最大因子的列表编号中返回整数。

>>> most_factors([5,10,16,20,25]) 将返回# 6 factors, i.e., [1, 2, 4, 5, 10, 20]

我知道如何找到数字因素 def get_factors(n):

lc =[ x for x in range(1, n + 1) if n % x == 0]
return lc

我觉得我必须使用max(),但我必须使用列表理解

1 个答案:

答案 0 :(得分:0)

假设您已经定义了“ get_factors”函数:

def most_factors(x):
    factors = []
    lengths = []
    for i in x:
        factors.append(get_factors(i))
        lengths.append(len(get_factors(i)))
    return factors[lengths.index(max(lengths))]

使用列表理解:

def most_factors(x):
    factors = []
    lengths = []
    [factors.append(get_factors(i)) for i in x]
    [lengths.append(len(get_factors(i))) for i in x]
    return factors[lengths.index(max(lengths))]