勾股定理是初中学的内容,下面这个程序可以求出12W组勾股数
源码:
d = 0
for m in range(1, 500, 1):
for n in range(1, 500, 1):
if m >= n:
a = 2 * m * n
b = m * m - n * n
c = m * m + n * n
if a == 0 or b == 0 or c == 0:
continue
if (a * a + b * b) != c * c:
continue
else:
print(a, ", ", b, ", ", c, "为一组勾股数")
d = d + 1
else:
continue
print("共计", d, "组")
解析:
根据完全平方公式,
(a+b)²=a²+2ab+b²,
(a-b)²=a²-2ab+b².
化简后,
(2ab)²+(a²-b²)²=(a²+b²)²
故2ab,a²-b²和a²+b²是一组勾股数。