【发布时间】:2020-05-30 04:40:47
【问题描述】:
给你两个列表,你必须找出构成完美正方形的对。
例如在:
a = [2, 6, 10, 13, 17, 18]
b = [3, 7, 8, 9, 11, 15]
有两对(2,8) 和(8,18)。
有没有比蛮力更有效的方法? 这是我的代码,时间复杂度为 O(n*m) (其中 n 是 a 的长度,m 是 b 的长度)。
pl = []
a = [ 2, 6, 10, 13, 17,18]
b = [ 3, 7, 8, 9, 11, 15 ]
i = 0
while(i < len(a)):
j = 0
while(j < len(b)):
p = a[i]*b[j]
n = p**0.5
u = int(n)
if n == u:
pl.append((a[i],b[j]))
j = j+1
i = i+1
print(pl)
在使用 C#here 之前已经问过这个问题,但我不明白他们的意思是“我们需要为每个数字存储的是它的哪个素数具有奇数”,所以我可以不要在我的 Python 代码中实现它。
有人可以向我解释一下我们如何在 Python 中实现一个高效的解决方案吗?
【问题讨论】:
标签: python python-3.x list math perfect-square