我想编写一个名为find_integer_with_most_divisors的函数,该函数接受整数列表,并从具有最大除数的列表中返回整数。如果出现平局,则返回除数最大的第一项。

例如:

如果列表是:
 [8、12、18、6]

在此列表中,8具有四个除数:[1,2,4,8]; 12具有六个除数:[1,2,3,4,6,12]; 18具有六个除数:[1,2,3,6,9,18];和6具有四个除数:[1,2,3,6]。请注意,将12和18绑定为最大除数(两个都有6个除数)。我的函数应返回除数最大的第一项;因此它应该返回:
 12



现在,我编写了波纹管代码以查找列表中每个数字的除法。任何人都可以帮助我继续执行此功能。
谢谢。

def find_integer_with_most_divisors(input_list):
    for i in input_list:
        my_list = []
        for x in range(1,i+1):
            if i % x == 0:
                my_list.append(i)

最佳答案

您可以创建函数中除数数量的列表,然后将该列表中的最高数与原始列表进行匹配:

def find_integer_with_most_divisors(input_list):
    nr_divisors = []
    for i in input_list:
        my_list = []
        for x in range(1, i+1):
            if i % x == 0:
                my_list.append(x)
        nr_divisors.append(len(my_list))
    return input_list[nr_divisors.index(max(nr_divisors))]

a = [8, 12, 18, 6]

print find_integer_with_most_divisors(a)


退货

12

关于python - Python中大多数除数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35415018/

10-11 10:23