小编Ell*_*rts的帖子

在列表中查找因子的最有效方法是什么?

我想做什么:

我需要创建一个函数,给定一个正整数列表(可能有重复的整数),计算所有三元组(在列表中),其中第三个数字是第二个的倍数,第二个是第一个的倍数:

(相同的数字不能在一个三元组中使用两次,但可以被所有其他三元组使用)

例如,[3, 6, 18]是因为18均匀地进入6其中3.

所以鉴于[1, 2, 3, 4, 5, 6]它应该找到:

[1, 2, 4] [1, 2, 6] [1, 3, 6]
Run Code Online (Sandbox Code Playgroud)

并返回3(它找到的三元组数)

我尝试过的:

我做了一些有效的功能,但效率不高.是否有一些我不知道的数学概念可以帮助我更快地找到这些三元组?具有更好功能的模块?我不知道该搜索什么...

def foo(q):
    l = sorted(q)
    ln = range(len(l))
    for x in ln:
        if len(l[x:]) > 1:
            for y in ln[x + 1:]:
                if (len(l[y:]) > 0) and (l[y] % l[x] == 0):
                    for z in ln[y + 1:]:
                        if l[z] % l[y] == 0: …
Run Code Online (Sandbox Code Playgroud)

python algorithm

6
推荐指数
1
解决办法
176
查看次数

标签 统计

algorithm ×1

python ×1