python - Python 中的大多数除数

标签 python

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

例如:

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

在此列表中,8 有四个约数,分别是: [1,2,4,8] ; 12 有 6 个约数,分别是:[1,2,3,4,6,12]; 18 有 6 个约数,分别是: [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/

相关文章:

python - Pygame-如何朝玩家 Sprite 的方向射击?

python - python语法中 `~`是什么意思

python - 在平局的情况下字典中的随机最大键

python - 当 n % k > 0 时,将 n 长列表分成 k 长 block 的简单习语?

python - 在文件名中编号最大的目录中查找文件

python - 如何在使用 <iostream> 的 Python 中调用 C++ 代码

python - 如何记录pandas跳过的坏行

python - 如何添加基于列值限制外键数量的 Django 约束?

Python ctypes : Passed arguments are null when using restype

python - VS 代码中的外部终端调试器