Given a sorted array of integers and we have to find all Pythagorean triples.

Definition from Wikipedia : A Pythagorean triple consists of three positive integers a, b, and c, such that a2 + b2 = c2. Such a triple is commonly written (a, b, c), and a well-known example is (3, 4, 5).

Code :

        public static void PythagoreanTriple(int[] input)
        {

            int length = input.Length;
            if (length < 3)
            {
                Console.WriteLine("Length of Array can not be less then 3");
                return;
            }

            for (int i = 0; i < length; i++)
            {
                input[i] = input[i] * input[i];
            }

            int leftPointer = 0;
            int rightPointer = 0;
            int temp = 0;
            for (int i = length - 1; i > 1; i--)
            {
                leftPointer = 0;
                rightPointer = i - 1;
                temp = input[i]; ;
                while (leftPointer < rightPointer)
                {
                    if (input[leftPointer] + input[rightPointer] == temp)
                    {
                        Console.WriteLine(Math.Sqrt(input[leftPointer]) + ";" 
+ Math.Sqrt(input[rightPointer])
+ ";" + Math.Sqrt(input[i])); break; } else if (input[leftPointer] <= input[rightPointer]) { leftPointer++; } else { rightPointer--; } } } }
Test Case: 
Input Output
{ 1, 3, 4,5, 6, 7, 8, 10, 11 } 6;8;10

3;4;5
{ 1, 3, 4,5, 6, 7, 8, 10, 11,12,13 }

5;12;13

6;8;10

3;4;5

{ 5, 6, 7, 8, 10, 11,12,13,14,15,17 }

8;15;17

5;12;13

6;8;10