A Pythagorean triplet is a set of three natural numbers, a < b < c, for which,
a² + b² = c²
For example, 3² + 4² = 9 + 16 = 25 = 5².
There exists exactly one Pythagorean triplet for which a + b + c = 1000.
Find the product abc.
这里用lua实现
由于题目满足勾股定理可得之一定能组成一个直角三角形,三角形的性质为两边和大于第三边
所以最大值C一定小于500,最大为499;
同时a+b一定大于500,所以这两个数至少有一个值大于等于251;
则C的取值范围为252->499;
B的取值范围为251->C - 1;
A的值为 1000 - B - C
local function triple()
for c = 499,252,-1 do
for b = c - 1,251,-1 do
local a = 1000 - c - b;
if b > a and a * a + b * b == c * c then
return a,b,c;
elseif a >= b then
break;
end
end
end
end
local a,b,c = triple()
得出a,b,c分别为200 375 425