Python 如何使用itertools改进我的慢速嵌套for循环?

Python 如何使用itertools改进我的慢速嵌套for循环?,python,python-3.x,loops,nested,itertools,Python,Python 3.x,Loops,Nested,Itertools,我针对Codewars问题编写的代码太慢了,经过一些研究后,我似乎不得不使用itertools产品,但我想不出一个解决方法 现在这是我的代码,它确实可以工作,但正如所说的那样太慢了 def list_squared(m, n): results = [] for i in range (m, n): sum = 0 for j in range (1, i+1): if i % j == 0: sum += j**2

我针对Codewars问题编写的代码太慢了,经过一些研究后,我似乎不得不使用itertools产品,但我想不出一个解决方法

现在这是我的代码,它确实可以工作,但正如所说的那样太慢了

def list_squared(m, n):
  results = []
  for i in range (m, n):
     sum = 0
     for j in range (1, i+1):
         if i % j == 0:
             sum += j**2
     if int(sum**(1/2))**2 == sum: #checking if number is a perfect square number
             results.append([i, sum])
  return results
在这种情况下,如何使用itertools中的prodcut函数

编辑: 一些例子:

列表平方(1250)-->[1,1],[422500],[24684100]]

列表平方(42250)->[422500],[24684100]

我应该得到一份这样的清单。 考虑到我输入的两个整数m,n(1如果“sum**(1/2)”表示“sum的平方根”,它可能会被自动转换成exp((1/2)*log(sum))之类的东西,它会把你活活吃掉。早餐。无盐

模运算i%j可能没有帮助,但在狼群结束与你的关系后,肯定会有几次蚊子叮咬

在这种情况下,你必须对你的算法进行长时间、仔细的研究


从观察完美正方形集给出函数(m和n)的输入示例和预期输出my bad开始。我添加了它