首页 > 解决方案 > 我怎样才能使这个完美平方和函数更有效?

问题描述

我的部分作业包括制作一个函数来检查一个数字是否是两个平方的和。问题是大量数字需要很长时间才能通过它。关于如何提高效率的任何建议?例如,由于 7^2 是 49 而 1^2 是 1,所以50它会返回的数字,(7,1)所以总数是 50 这是代码:

def sum_of_squares(n) : 
  i = 1 

  while i * i <= n : 
      j = 1

      while(j * j <= n) : 

          while (i * i + j * j == n) : 

              return (j,i)

          j = j + 1
      i = i + 1

标签: pythonpython-3.xfunctionwhile-loop

解决方案


def sum_of_squares(n) :
  range = round(math.sqrt(n)) 
  i = 1 
  while i <= round(range/2) : 
      j = range;

      while(j >= round(range/2)) : 

          while (i * i + j * j == n) : 

              return (j,i)

          j = j - 1
      i = i + 1

推荐阅读