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

Popular posts from this blog

Project Euler Problem 62 solution with python

Cubic permutations ¶ The cube, 41063625 (3453), can be permuted to produce two other cubes: 56623104 (3843) and 66430125 (4053). In fact, 41063625 is the smallest cube which has exactly three permutations of its digits which are also cube. Find the smallest cube for which exactly five permutations of its digits are cube.

Project Euler Problem 67 Solution with Python

Maximum path sum II By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 3 7 4 2 4 6 8 5 9 3 That is, 3 + 7 + 4 + 9 = 23. Find the maximum total from top to bottom in triangle.txt (right click and 'Save Link/Target As...'), a 15K text file containing a triangle with one-hundred rows.

Problem 43 Project Euler Solution with python

Sub-string divisibility The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property. Let d 1 be the 1 st digit, d 2 be the 2 nd digit, and so on. In this way, we note the following: d 2 d 3 d 4 =406 is divisible by 2 d 3 d 4 d 5 =063 is divisible by 3 d 4 d 5 d 6 =635 is divisible by 5 d 5 d 6 d 7 =357 is divisible by 7 d 6 d 7 d 8 =572 is divisible by 11 d 7 d 8 d 9 =728 is divisible by 13 d 8 d 9 d 10 =289 is divisible by 17 Find the sum of all 0 to 9 pandigital numbers with this property. One might write a simple solution using direct if else statements for this problem. Using if else statements, the execution time may be a few seconds. But this is not a very good approach. I too had written a program with if else statement which will take each and every permutation of the 0-9 Pandigital and check for the conditions given in the qu...