我需要生成所有可能的(a, b, c)
,例如a * b * c = V
,其中V是function parameter
。
有没有正确的方法来完成我的任务?我尝试使用a, b, c
的完全蛮力,但它非常慢。这是因为V
可能超过10^4
。
P.S。 a, b, c
是整数。
答案 0 :(得分:1)
我猜你正在做这样的事情:
def prisms(V):
for a in range(1, V+1):
for b in range(1, V+1):
for c in range(1, V+1):
if a*b*c = V:
print a,b,c
通过从已知的A和B值中导出C的值,可以将复杂度从O(N ^ 3)降低到O(N ^ 2)。
def prisms(V):
for a in range(1, V+1):
for b in range(1, V+1):
if V % (a*b) == 0:
c = V / (a*b)
print a,b,c
这不是最有效的方法,但它很简单,对于大约10 ** 4的V值也可能足够好。