获取给定整数的整个因子对列表的最简单方法是什么?

Chr*_*ell 4 python math

获取给定整数的整个因子对列表的最简单方法是什么?

例如:f(20)会回来[(1,20), (2,10), (4,5)].

Ste*_*yne 10

def f(value):
    factors = []
    for i in range(1, int(value**0.5)+1):
        if value % i == 0:
            factors.append((i, value / i))
    return factors
Run Code Online (Sandbox Code Playgroud)

或者使用列表理解相同的事情:

def f(val):
    return [(i, val / i) for i in range(1, int(val**0.5)+1) if val % i == 0]
Run Code Online (Sandbox Code Playgroud)