Tracks
/
Go
Go
/
Exercises
/
Pythagorean Triplet
Pythagorean Triplet

Pythagorean Triplet

Medium

Introduction

You are an accomplished problem-solver, known for your ability to tackle the most challenging mathematical puzzles. One evening, you receive an urgent letter from an inventor called the Triangle Tinkerer, who is working on a groundbreaking new project. The letter reads:

Dear Mathematician,

I need your help. I am designing a device that relies on the unique properties of Pythagorean triplets — sets of three integers that satisfy the equation a² + b² = c². This device will revolutionize navigation, but for it to work, I must program it with every possible triplet where the sum of a, b, and c equals a specific number, N. Calculating these triplets by hand would take me years, but I hear you are more than up to the task.

Time is of the essence. The future of my invention — and perhaps even the future of mathematical innovation — rests on your ability to solve this problem.

Motivated by the importance of the task, you set out to find all Pythagorean triplets that satisfy the condition. Your work could have far-reaching implications, unlocking new possibilities in science and engineering. Can you rise to the challenge and make history?

Instructions

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

a² + b² = c²

and such that,

a < b < c

For example,

3² + 4² = 5².

Given an input integer N, find all Pythagorean triplets for which a + b + c = N.

For example, with N = 1000, there is exactly one Pythagorean triplet for which a + b + c = 1000: {200, 375, 425}.

Implementation Notes

Range should return a list of all Pythagorean triplets with sides in the range min to max inclusive.

Sum should return a list of all Pythagorean triplets where the sum a+b+c (the perimeter) is equal to p. The three elements of each returned triplet must be in order, t[0] <= t[1] <= t[2], and the list of triplets must be in lexicographic order.

Edit via GitHub The link opens in a new window or tab
Go Exercism

Ready to start Pythagorean Triplet?

Sign up to Exercism to learn and master Go with 34 concepts165 exercises, and real human mentoring, all for free.