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