Tracks
/
MIPS Assembly
MIPS Assembly
/
Exercises
/
Pythagorean Triplet
Pythagorean Triplet

Pythagorean Triplet

Hard

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}.

Registers

Register Usage Type Description
$a0 input integer N, sum of sides of triangle
$a1 input/output address a values
$a2 input/output address b values
$a3 input/output address c values
$v0 output integer number of triplets
$t0-9 temporary any for temporary storage
Edit via GitHub The link opens in a new window or tab
MIPS Assembly Exercism

Ready to start Pythagorean Triplet?

Sign up to Exercism to learn and master MIPS Assembly with 54 exercises, and real human mentoring, all for free.