50以内的勾股数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了50以内的勾股数相关的知识,希望对你有一定的参考价值。

要自然数

50以内的勾股数

3、4、5

15、8、17

5、12、13

7、24、25

6、8、10

9、12、15

15、20、25

12、16、20

20、21、29

10、24、26

18、24、30

24、32、40

当a为大于1的奇数2n+1时

b=2n²+2n, c=2n²+2n+1。

实际上就是把a的平方数拆成两个连续自然数,例如:

n=1时(a,b,c)=(3,4,5)

n=2时(a,b,c)=(5,12,13)

n=3时(a,b,c)=(7,24,25)

由于两个连续自然数必然互质,所以用这个套路得到的勾股数组全部都是互质的。

参考技术A 3 4 5,
(6,8,10),(9,12,15),(12,16,20),(15,20,25),(18,24,30)(21,28,35)(24,32,40)(27,36,45)(30,40,50)
5 12 13,(10,24,26),(15,36,39)
8 15 17, (16,30,34)
7 24 25,(14,48,50)
20 21 29,
12 35 37,
9 40 41,
参考技术B 3 4 5,
(6,8,10),(9,12,15),(12,16,20),(15,20,25),(18,24,30)(21,28,35)(24,32,40)(27,36,45)(30,40,50)
5 12 13,(10,24,26),(15,36,39)
8 15 17, (16,30,34)
7 24 25,(14,48,50)
20 21 29,
12 35 37,
9 40 41,
参考技术C 3.4.5
15.8.17
5.12.13
7.24.25
6.8.10
9.12.15
15.20.25
12.16.20
20.21.29
10.24.26
18.24.30
24.32.40
参考技术D 3,4,56,8,1012,16,2024,32,4048,64,80

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

参考技术A #每个左边的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
参考技术B 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]]

以上是关于50以内的勾股数的主要内容,如果未能解决你的问题,请参考以下文章

求50以内的所有勾股数

用python编写程序输出50以内的勾股数,如图要求每行显示6组,各组勾股数无重复

求初二数学勾股定理1到50的勾股数。

勾股数

勾股数

[算法]勾股数