我需要生成所有可能的(a, b, c)
,例如,a * b * c = V
,其中 V function parameter
。
有没有一些正确的方法来完成我的任务?我尝试通过a, b, c
使用完全蛮力,但它非常慢。这是因为,V
可能不止10^4
.
附言 a, b, c
是整数。
我猜你在做这样的事情:
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
这不是最有效的方法,但它很简单,对于 V 在 10**4 左右的值可能足够好。