Euler found at least two parametric solutions to the problem, but neither gives all solutions.
但是你可以这样做:
import math
i = 1
j = 1000
for a in range(i, j):
for b in range(i, j):
for c in range(i, j):
d = math.sqrt(a**2 + b**2)
e = math.sqrt(a**2 + c**2)
f = math.sqrt(b**2 + c**2)
if d.is_integer() and e.is_integer() and f.is_integer():
print("a={} b={} c={}".format(a, b, c))
对其进行了优化,使其运行速度大大提高:
import math
i = 1
j = 1000
for a in range(i, j):
a_squared = a**2
for b in range(a, j):
b_squared = b**2
d = math.sqrt(a_squared + b_squared)
if not d.is_integer():
continue
for c in range(b, j):
c_squared = c**2
e = math.sqrt(a_squared + c_squared)
if not e.is_integer():
continue
f = math.sqrt(b_squared + c_squared)
if not f.is_integer():
continue
print("a={} b={} c={}".format(a, b, c))
我想,如果你想要所有的欧拉砖,you can not use that formula.
但是你可以这样做:
对其进行了优化,使其运行速度大大提高:
打印内容:
相关问题 更多 >
编程相关推荐