本文实例讲述了Python实现获取前100组勾股数的方法。分享给大家供大家参考,具体如下:
本来想采用穷举试探的方式来做这个算法,后来发现还是有点麻烦。从网络上找来了一种求解方法如下:
当a为大于1的奇数2n+1时,b=2n^2+2n,c=2n^2+2n+1。实际上就是把a的平方数拆成两个连续自然数。
编写代码如下:
#!/usr/bin/python
for n in range(1,101):
a = 2 * n +1
b = 2 * (n** 2) + 2 * n
c = b + 1
# check theresult
if a ** 2 +b ** 2 == c ** 2:
print("a= %d, b = %d, c = %d" %(a,b,c))
程序执行结果:
a = 3, b = 4, c = 5
a = 5, b = 12, c = 13
a = 7, b = 24, c = 25
a = 9, b = 40, c = 41
a = 11, b = 60, c = 61
a = 13, b = 84, c = 85
a = 15, b = 112, c = 113
a = 17, b = 144, c = 145
a = 19, b = 180, c