什么是勾股数?
勾股数就是指能够构成直角三角形三条边的三个正整数(a,b,c),根据“勾股数”定义,所求三角形三边应满足条件a^2+b^2=c^2。可以在所求范围内利用穷举法找出满足条件的数。那么50以内有多少勾股数?
下面直接上代码:
########################
import math
if __name__ == "__main__":
count = 0
print("50以内的勾股数有:")
# a、b、c分别表示三角形的三条边
# 满足勾股数的三个数组成的三角形一定是直角三角形
print(" a\tb\t c \t\t a \t b \t c \t\t a \t b\t c \t\t a\t b\t c");
# 求50以内的勾股数
for a in range(1,51):
for b in range(a+1, 51): # 邻边不能相等,否则就是等边三角形了
c = int(math.sqrt(a*a + b*b)) # 求c值,并转换为整型
# 判断c的平方是否等于a*a + b*b,且两边之和大于第三边
if c*c == (a*a + b*b) and (a + b > c) and (a + c > b) and (b + c > a) and c <= 50:
print("%4d %4d %4d\t |" %(a, b, c), end="")
count += 1
if count % 4 == 0:
print()
########################
执行结果如下:
50以内的勾股数有:
a b c a b c a b c a b c
3 4 5 | 5 12 13 | 6 8 10 | 7 24 25 |
8 15 17 | 9 12 15 | 9 40 41 | 10 24 26 |
12 16 20 | 12 35 37 | 14 48 50 | 15 20 25 |
15 36 39 | 16 30 34 | 18 24 30 | 20 21 29 |
21 28 35 | 24 32 40 | 27 36 45 | 30 40 50 |
________________END______________
网友评论