Skip to main content

Problem9 projecteuler.net Matlab Special Pythagorean triplet solution

Problem:

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

a2 + b2 = c2
For example, 32 + 42 = 9 + 16 = 25 = 52.
There exists exactly one Pythagorean triplet for which a + b + c = 1000.
Find the product abc. Solve using matlab?

Solution

Here we have used the for loops in the matlab and the if condition to check the given condition. If you don't know what for loop is and what if statement is then click here:
For loop in Matlab
If statement in Matlab

Program



sol = 1;
for i = 1:1000
    for j = 1:1000
        for k = 1:1000
            if i^2+j^2 == k^2
                if (i+j+k) == 1000
                    sol = i*j*k
                end
            end
        end
    end
end

Download the above program from here: spytriplet.m

Explanation

The condition given in the question is that a+b+c is not greater than 1000, Then in the worst case if b and c are equal to 0 then a is 1000 similarly, for b and c also. so the condition can be stated mathematically as 
a<=1000
b<=1000
c<=1000
So I have started three loops with iterators i, j, k corresponding to a, b, c. Digging into the for loops we can find the if statement to check the pythogorean theorem, and again digging deep we can find the condition of a+b+c = 1000, if all the conditions are satisfied then the sol stores the value and the output of a*b*c is given.

I have tried to explain this program easily, but if you cannot understand then please do contact me.

This problem has been taken from projecteuler.net and can be found here: problem9

To download this post and read it offline then click here: problem7_projecteuler_matlab.pdf

The above program was highlighted using hilite.me

Run the program and comment below the output you are getting for a given input.
Keywords: problem 9 ,projecteuler.net, special pythagorean triplet, matlab function