python - 我怎样才能使这个完美平方和函数更有效?
问题描述
我的部分作业包括制作一个函数来检查一个数字是否是两个平方的和。问题是大量数字需要很长时间才能通过它。关于如何提高效率的任何建议?例如,由于 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
解决方案
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
推荐阅读
- php - FB分享按钮的URL中获取不同的APP key
- python-3.x - NLP 结构问题(进行特征提取的最佳方法)
- reactjs - ReactJS - 状态更改后重定向到私有路由
- java - 使用反射使用子类获取超类字段
- wordpress - 在订购产品后隐藏“添加到购物车”按钮 1 天,对于用户订购的产品
- .net - 在集成基于异步消息的系统中添加新服务的策略/框架是什么?
- angular - Angular @nebular/theme 版本 3.6.1 NbAccordionModule 缺失?
- python - 从文本文件创建的列表中删除添加的“\n”部分
- python - 如何修复 setuptools/wheel.py:157 _convert_metadata 中的“没有这样的文件或目录”错误
- java - 如何在 gradle 中使用来自 git repo 的 java 文件作为依赖