【欧拉计划第 9 题】特殊的毕达哥拉斯三元数 Special Pythagorean triplet
Problem 9 Special Pythagorean triplet
A Pythagorean triplet is a set of three natural numbers, $a < b < c$, for which,
$$
\large a^2+b^2=c^2
$$
For example,
$$
\large 3^2+4^2=9+16=25=5^2
$$
There exists exactly one Pythagorean triplet for which $a + b + c = 1000$.
Find the product $abc$.
问题 9 特殊的毕达哥拉斯三元数
毕达哥拉斯三元组是一组三个自然数的集合,且 $a < b < c$,其中
$$
\large a^2+b^2=c^2
$$
例如:
$$
\large 3^2+4^2=9+16=25=5^2
$$
恰好存在一个 $a + b + c = 1000$ 的毕达哥拉斯三元组,求积 $abc$
解题报告
题目中提到了毕达哥拉斯三元组,我们首先理解下其数学定义
毕达哥拉斯定理
在一个边长为 $a、b、c$ 的直角三角形中,$a²+b²=c²$。理想的情况是 $a、b、c$ 均为整数,则称为毕达哥拉斯三元数组
如题目中给出的例子,$3、4、5$ 就符合条件
思路
根据题目叙述,我们要满足 $a < b < c$ 和 $a²+b²=c²$ 的条件
那么只需要分别定义三个变量 $a、b、c$,分别给它们赋值为 $1、2、3$ 并符合比较关系,用来满足第一个条件
然后从变量 $c$ 开始,三层循环,最后一层中去判断 $a + b + c = 1000$ 和 $a²+b²=c²$ 条件
如果满足,则输出此时的乘积即为所求
这并不是唯一的解决方案,但是是我认为比较简单,最容易理解的一种
代码实现
1 | /* |
答案:31875000