关于勾股数的一些想法:
题目:2018中国大学生程序设计竞赛 - 网络选拔赛
勾股数:维基百科
以下的方法也可以用于找出勾股数:
a=2*n+1;
b=2*n*n+2*n;
c=2*n*n+2*n+1;
所产生的勾股数不完整,a均为奇数,但所有的偶数勾股数发现均可以由某个奇数勾股数乘以若干个2得到。毕竟是为了通过OJ
依照素勾股数的定义:
gcd(a,b)=gcd(a,c)=gcd(b,c)=gcd(a,b,c)=1
这组数:15 112 113
是不是应该也算呢?@维基百科
推理过程:
a^2+b^2=c^2
a^2=c^2-b^2=(c+b)*(c-b)
令
c-b=1
求解
c+b=a^2
因为当a为素数时
a^2 = (a ^2) * (1) = (a) * (a)
而c+b!=c-b!=a
,故用此法。
当a不为素数时,分解方法不唯一,可有多组勾股数,也无非是让一个二元一次方程组有整数解,可是对于计算机而言,求整数解着实不易,所以是先把偶数变为奇数再求解。
突然发现好像百度百科上已经有了。
引自:CSDN
就是费马大定理,>2不存在,=0不存在,=1很好算,=2用费马大定理奇偶数列法则求解
若a为奇数,则 a = 2n + 1 ,c = n ^ 2 + (n + 1) ^ 2 ,b = c - 1;
若a为偶数,则 a = 2n + 2 ,c = 1 + (n + 1) ^ 2 ,b = c - 2;
我是只知其一,不知其二,膜!!!
网友评论