我刚刚开始学习Python并且已经开始做一些问题只是为了帮助提高我的技能,但是我非常坚持这个问题.
制作一个包含所有高达1000的正整数的列表,其正方形可以表示为两个正方形的和(i,例如,整数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
Run Code Online (Sandbox Code Playgroud)
我得到的问题是Python需要数年才能完成这些计算(我等了大约十分钟,它仍在打印数字).任何关于如何解决这个问题的提示都将非常感激.
ps重点是使用列表.此外,提示将比解决方案本身更受欢迎.
谢谢!