怎么样求勾股数?

如题所述

第1个回答  2022-11-07
所谓勾股数,一般是指能够构成直角三角形三条边的三个正整数(a,b,c)。
  即a^2+b^2=c^2,a,b,c∈n
  又由于,任何一个勾股数组(a,b,c)内的三个数同时乘以一个整数n得到的新数组(na,nb,nc)仍然是勾股数,所以一般我们想找的是a,b,c互质的勾股数组。
  关于这样的数组,比较常用也比较实用的套路有以下两种:
  1、当a为大于1的奇数2n+1时,b=2*n^2+2*n,
c=2*n^2+2*n+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)
  ...
...
  这是最经典的一个套路,而且由于两个连续自然数必然互质,所以用这个套路得到的勾股数组全部都是互质的。
  2、当a为大于4的偶数2n时,b=n^2-1,
c=n^2+1
  也就是把a的一半的平方分别减1和加1,例如:
  n=3时(a,b,c)=(6,8,10)
  n=4时(a,b,c)=(8,15,17)
  n=5时(a,b,c)=(10,24,26)
  n=6时(a,b,c)=(12,35,37)
  ...
...
  这是次经典的套路,当n为奇数时由于(a,b,c)是三个偶数,所以该勾股数组必然不是互质的;而n为偶数时由于b、c是两个连续奇数必然互质,所以该勾股数组互质。
  所以如果你只想得到互质的数组,这条可以改成,对于a=4n
(n>=2),
b=4*n^2-1,
c=4*n^2+1,例如:
  n=2时(a,b,c)=(8,15,17)
  n=3时(a,b,c)=(12,35,37)
  n=4时(a,b,c)=(16,63,65)
  ...
...
相似回答