我刚刚开始学习 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 需要数年时间来完成这些计算(我已经等了大约十分钟,它仍在打印数字)。任何有关如何解决此问题的提示将不胜感激。
ps 重点是使用列表。此外,提示将比解决方案本身更受欢迎。
谢谢你!