Back to Freecodecamp

Problem 9: Special Pythagorean triplet

curriculum/challenges/english/blocks/project-euler-problems-1-to-100/5900f3761000cf542c50fe88.md

latest1.4 KB
Original Source

--description--

A Pythagorean triplet is a set of three natural numbers, a < b < c, for which,

<div style='text-align: center;'><var>a</var><sup>2</sup> + <var>b</var><sup>2</sup> = <var>c</var><sup>2</sup></div>

For example, 3<sup>2</sup> + 4<sup>2</sup> = 9 + 16 = 25 = 5<sup>2</sup>.

There exists exactly one Pythagorean triplet for which a + b + c = 1000. Find the product abc such that a + b + c = n.

--hints--

specialPythagoreanTriplet(24) should return a number.

js
assert.isNumber(specialPythagoreanTriplet(24));

specialPythagoreanTriplet(24) should return 480.

js
assert.strictEqual(specialPythagoreanTriplet(24), 480);

specialPythagoreanTriplet(120) should return 49920, 55080 or 60000.

js
assert.oneOf(specialPythagoreanTriplet(120), [49920, 55080, 60000]);

specialPythagoreanTriplet(1000) should return 31875000.

js
assert.strictEqual(specialPythagoreanTriplet(1000), 31875000);

--seed--

--seed-contents--

js
function specialPythagoreanTriplet(n) {
 let sumOfabc = n;

 return true;
}

specialPythagoreanTriplet(1000);

--solutions--

js
function specialPythagoreanTriplet(n) {
  for (let a = 1; a <= n / 2; a++) {
    for (let b = a + 1; b <= n / 2; b++) {
      const c = Math.sqrt(a * a + b * b);

      if ((a + b + c) % n == 0) {
        const factor = n / (a + b + c);

        return (a * b * c) * (factor ** 3);
      }
    }
  }
}