作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我刚刚开始学习 Python,并开始做一些问题来帮助我提高技能,但我一直被这个问题困住了。
制作一个包含所有正整数的列表,最多为 1000,其平方可以表示为两个平方和,(即,整数 p,其中 p^2=m^2+n^2,其中 m 和n 为大于 0 的整数。)
提示:有几种方法。您可能会发现拥有所有平方数的列表很有帮助。 in 运算符可能会有用。
这是我到目前为止想出的代码:
numbers=xrange(1001)
numbers_squared=[x**2 for x in numbers]
a=[]
for x in numbers_squared:
for b in numbers_squared:
if (x+b)**.5 <= 1001:
a.append(x+b)
print a
我遇到的问题是 Python 需要数年时间才能完成这些计算(我等了大约十分钟,它仍在打印数字)。任何有关如何解决此问题的提示都将不胜感激。
附注要点是使用列表。此外,提示比解决方案本身更受欢迎。
谢谢!
最佳答案
首先,您没有解决问题。您需要进行检查以确保 (x+b)**.5
实际上是一个整数。其次,如果你正在打印数字,那么你已经计算出了所有的数字。执行上述操作将减少此步骤所需的时间。
关于python - 平方数为两个平方和的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215629/
我是一名优秀的程序员,十分优秀!