用Python for语句编写程序输出50以内的勾股数

如题所述

第1个回答  2018-04-02
#每个左边的0表示一个空格
lst=[]
for a in range(1,50):
0000for b in range(1,50):
00000000for c in range(1,50):
000000000000if a<=b and a**2+b**2==c**2:
0000000000000000lst.append((a,b,c))
n=0
for a,b,c in lst:
0000s='{0},{1},{2}'.format(a,b,c)
0000print '{0:10}'.format(s),
0000n+=1
0000if 0==n%6:
00000000print
第2个回答  2018-04-01
sorted([list(x) for x in set(( tuple(sorted((i,j,k))) for i in range(1,51) for j in range(1,51) for k in [int(math.sqrt(i*i+j*j))] if math.sqrt(i*i+j*j)==k and k<51 ))])
Out[89]: 
[[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]]

本回答被网友采纳