Skip to main content

Find pythagorean triplet in array

Here given code implementation process.

import java.util.Arrays;
/*
    Java program for
    Find pythagorean triplet in array
*/
public class PythagoreanTriplet
{
	// Display array elements
	public void printArray(int[] arr, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			System.out.print(" " + arr[i]);
		}
	}
	public void findPythagoreanTriplet(int[] arr, int n)
	{
		if (n <= 2)
		{
			return;
		}
		// result indicator 
		boolean status = false;
		// Auxiliary variables
		int a = 0;
		int b = 0;
		int c = 0;
		int left = n - 2;
		int right = n - 1;
		// Auxiliary array
		int[] temp = new int[n];
		// Copy array elements
		for (int i = 0; i < n; ++i)
		{
			temp[i] = arr[i];
		}
		// Sort array elements
		Arrays.sort(temp);
		// Calculate square of each element
		for (int i = 0; i < n; ++i)
		{
			temp[i] = temp[i] * temp[i];
		}
		for (int i = 0; i < n; ++i)
		{
			a = temp[i];
			while (left > i)
			{
				c = temp[right];
				b = temp[left];
				if ((c - b) == a)
				{
					// Display pythagorean triplet pair
					System.out.print("\n" + 
                      ((int) Math.sqrt(a)) + "² + " + 
                      ((int) Math.sqrt(b)) + "² = " + 
                      ((int) Math.sqrt(c)) + "²");
					right--;
					left++;
					status = true;
				}
				else if ((c - b) > a)
				{
					right--;
				}
				else
				{
					left--;
				}
			}
			// Reset the left and right value
			left = n - 2;
			right = n - 1;
		}
		if (status == false)
		{
			System.out.print("\n None \n");
		}
	}
	public static void main(String[] args)
	{
		PythagoreanTriplet task = new PythagoreanTriplet();
		int[] arr = {
			6 , 29 , 4 , 15 , 8 , 20 , 11 , 17 , 10 , 21
		};
		int n = arr.length;
		/*
		  6² + 8² = 10²
		  8² + 15² = 17²
		  20² + 21² = 29²
		*/
		task.findPythagoreanTriplet(arr, n);
	}
}

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
// Include header file
#include <iostream>
#include <algorithm>
#include <math.h>

using namespace std;
/*
    C++ program for
    Find pythagorean triplet in array
*/
class PythagoreanTriplet
{
	public:
		// Display array elements
		void printArray(int arr[], int n)
		{
			for (int i = 0; i < n; ++i)
			{
				cout << " " << arr[i];
			}
		}
	void findPythagoreanTriplet(int arr[], int n)
	{
		if (n <= 2)
		{
			return;
		}
		// result indicator
		bool status = false;
		// Auxiliary variables
		int a = 0;
		int b = 0;
		int c = 0;
		int left = n - 2;
		int right = n - 1;
		// Auxiliary array
		int temp[n];
		// Copy array elements
		for (int i = 0; i < n; ++i)
		{
			temp[i] = arr[i];
		}
		// Sort array elements
		sort(temp, temp + n);
		// Calculate square of each element
		for (int i = 0; i < n; ++i)
		{
			temp[i] = temp[i] *temp[i];
		}
		for (int i = 0; i < n; ++i)
		{
			a = temp[i];
			while (left > i)
			{
				c = temp[right];
				b = temp[left];
				if ((c - b) == a)
				{
					// Display pythagorean triplet pair
					cout << "\n" << ((int) sqrt(a)) 
                         << "² + " << ((int) sqrt(b)) 
                         << "² = " << ((int) sqrt(c)) << "²";
					right--;
					left++;
					status = true;
				}
				else if ((c - b) > a)
				{
					right--;
				}
				else
				{
					left--;
				}
			}
			// Reset the left and right value
			left = n - 2;
			right = n - 1;
		}
		if (status == false)
		{
			cout << "\n None \n";
		}
	}
};
int main()
{
	PythagoreanTriplet *task = new PythagoreanTriplet();
	int arr[] = {
		6 , 29 , 4 , 15 , 8 , 20 , 11 , 17 , 10 , 21
	};
	int n = sizeof(arr) / sizeof(arr[0]);
	/*
	  6² + 8² = 10²
	  8² + 15² = 17²
	  20² + 21² = 29²
	*/
	task->findPythagoreanTriplet(arr, n);
	return 0;
}

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
// Include namespace system
using System;
/*
    Csharp program for
    Find pythagorean triplet in array
*/
public class PythagoreanTriplet
{
	// Display array elements
	public void printArray(int[] arr, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			Console.Write(" " + arr[i]);
		}
	}
	public void findPythagoreanTriplet(int[] arr, int n)
	{
		if (n <= 2)
		{
			return;
		}
		// result indicator
		Boolean status = false;
		// Auxiliary variables
		int a = 0;
		int b = 0;
		int c = 0;
		int left = n - 2;
		int right = n - 1;
		// Auxiliary array
		int[] temp = new int[n];
		// Copy array elements
		for (int i = 0; i < n; ++i)
		{
			temp[i] = arr[i];
		}
		// Sort array elements
		Array.Sort(temp);
		// Calculate square of each element
		for (int i = 0; i < n; ++i)
		{
			temp[i] = temp[i] * temp[i];
		}
		for (int i = 0; i < n; ++i)
		{
			a = temp[i];
			while (left > i)
			{
				c = temp[right];
				b = temp[left];
				if ((c - b) == a)
				{
					// Display pythagorean triplet pair
					Console.Write("\n" + ((int) Math.Sqrt(a)) + 
                      "² + " + ((int) Math.Sqrt(b)) + "² = " + 
                      ((int) Math.Sqrt(c)) + "²");
					right--;
					left++;
					status = true;
				}
				else if ((c - b) > a)
				{
					right--;
				}
				else
				{
					left--;
				}
			}
			// Reset the left and right value
			left = n - 2;
			right = n - 1;
		}
		if (status == false)
		{
			Console.Write("\n None \n");
		}
	}
	public static void Main(String[] args)
	{
		PythagoreanTriplet task = new PythagoreanTriplet();
		int[] arr = {
			6 , 29 , 4 , 15 , 8 , 20 , 11 , 17 , 10 , 21
		};
		int n = arr.Length;
		/*
		  6² + 8² = 10²
		  8² + 15² = 17²
		  20² + 21² = 29²
		*/
		task.findPythagoreanTriplet(arr, n);
	}
}

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
package main
import "sort"
import "math"
import "fmt"
/*
    Go program for
    Find pythagorean triplet in array
*/

// Display array elements
func printArray(arr[] int, n int) {
	for i := 0 ; i < n ; i++ {
		fmt.Print(" ", arr[i])
	}
}
func findPythagoreanTriplet(arr[] int, n int) {
	if n <= 2 {
		return
	}
	// result indicator
	var status bool = false
	// Auxiliary variables
	var a int = 0
	var b int = 0
	var c int = 0
	var left int = n - 2
	var right int = n - 1
	// Auxiliary array
	var temp = make([] int, n)
	// Copy array elements
	for i := 0 ; i < n ; i++ {
		temp[i] = arr[i]
	}
	// Sort array elements
	sort.Ints(temp)
	// Calculate square of each element
	for i := 0 ; i < n ; i++ {
		temp[i] = temp[i] * temp[i]
	}
	for i := 0 ; i < n ; i++ {
		a = temp[i]
		for (left > i) {
			c = temp[right]
			b = temp[left]
			if (c - b) == a {
				// Display pythagorean triplet pair
				fmt.Print("\n", (int(math.Sqrt(float64(a)))), "² + ", 
					int(math.Sqrt(float64(b))), "² = ", 
					int(math.Sqrt(float64(c))), "²")
				right--
				left++
				status = true
			} else if (c - b) > a {
				right--
			} else {
				left--
			}
		}
		// Reset the left and right value
		left = n - 2
		right = n - 1
	}
	if status == false {
		fmt.Print("\n None \n")
	}
}
func main() {
	
	var arr = [] int {6,29, 4, 15, 8 ,20, 11, 17 , 10, 21}
	var n int = len(arr)
	/*
	  6² + 8² = 10²
	  8² + 15² = 17²
	  20² + 21² = 29²
	*/
	findPythagoreanTriplet(arr, n)
}

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
<?php
/*
    Php program for
    Find pythagorean triplet in array
*/
class PythagoreanTriplet
{
	// Display array elements
	public	function printArray($arr, $n)
	{
		for ($i = 0; $i < $n; ++$i)
		{
			echo(" ".$arr[$i]);
		}
	}
	public	function findPythagoreanTriplet($arr, $n)
	{
		if ($n <= 2)
		{
			return;
		}
		// result indicator
		$status = false;
		// Auxiliary variables
		$a = 0;
		$b = 0;
		$c = 0;
		$left = $n - 2;
		$right = $n - 1;
		// Auxiliary array
		$temp = array_fill(0, $n, 0);
		// Copy array elements
		for ($i = 0; $i < $n; ++$i)
		{
			$temp[$i] = $arr[$i];
		}
		// Sort array elements
		sort($temp);
		// Calculate square of each element
		for ($i = 0; $i < $n; ++$i)
		{
			$temp[$i] = $temp[$i] * $temp[$i];
		}
		for ($i = 0; $i < $n; ++$i)
		{
			$a = $temp[$i];
			while ($left > $i)
			{
				$c = $temp[$right];
				$b = $temp[$left];
				if (($c - $b) == $a)
				{
					// Display pythagorean triplet pair
					echo("\n".((int) sqrt($a)).
						"² + ".((int) sqrt($b)).
						"² = ".((int) sqrt($c)).
						"²");
					$right--;
					$left++;
					$status = true;
				}
				else if (($c - $b) > $a)
				{
					$right--;
				}
				else
				{
					$left--;
				}
			}
			// Reset the left and right value
			$left = $n - 2;
			$right = $n - 1;
		}
		if ($status == false)
		{
			echo("\n None \n");
		}
	}
}

function main()
{
	$task = new PythagoreanTriplet();
	$arr = array(6, 29, 4, 15, 8, 20, 11, 17, 10, 21);
	$n = count($arr);
	/*
	  6² + 8² = 10²
	  8² + 15² = 17²
	  20² + 21² = 29²
	*/
	$task->findPythagoreanTriplet($arr, $n);
}
main();

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
/*
    Node JS program for
    Find pythagorean triplet in array
*/
class PythagoreanTriplet
{
	// Display array elements
	printArray(arr, n)
	{
		for (var i = 0; i < n; ++i)
		{
			process.stdout.write(" " + arr[i]);
		}
	}
	findPythagoreanTriplet(arr, n)
	{
		if (n <= 2)
		{
			return;
		}
		// result indicator
		var status = false;
		// Auxiliary variables
		var a = 0;
		var b = 0;
		var c = 0;
		var left = n - 2;
		var right = n - 1;
		// Auxiliary array
		var temp = Array(n).fill(0);
		// Copy array elements
		for (var i = 0; i < n; ++i)
		{
			temp[i] = arr[i];
		}
		// Sort array elements
		temp.sort(function(a, b)
		{
			return a - b;
		});
		// Calculate square of each element
		for (var i = 0; i < n; ++i)
		{
			temp[i] = temp[i] * temp[i];
		}
		for (var i = 0; i < n; ++i)
		{
			a = temp[i];
			while (left > i)
			{
				c = temp[right];
				b = temp[left];
				if ((c - b) == a)
				{
					// Display pythagorean triplet pair
					process.stdout.write("\n" + (Math.sqrt(a)) + "² + " +
                      ( Math.sqrt(b)) + "² = " + 
                      ( Math.sqrt(c)) + "²");
					right--;
					left++;
					status = true;
				}
				else if ((c - b) > a)
				{
					right--;
				}
				else
				{
					left--;
				}
			}
			// Reset the left and right value
			left = n - 2;
			right = n - 1;
		}
		if (status == false)
		{
			process.stdout.write("\n None \n");
		}
	}
}

function main()
{
	var task = new PythagoreanTriplet();
	var arr = [6, 29, 4, 15, 8, 20, 11, 17, 10, 21];
	var n = arr.length;
	/*
	  6² + 8² = 10²
	  8² + 15² = 17²
	  20² + 21² = 29²
	*/
	task.findPythagoreanTriplet(arr, n);
}
main();

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
import math
#    Python 3 program for
#    Find pythagorean triplet in array
class PythagoreanTriplet :
	#  Display list elements
	def printArray(self, arr, n) :
		i = 0
		while (i < n) :
			print(" ", arr[i], end = "")
			i += 1
		
	
	def findPythagoreanTriplet(self, arr, n) :
		if (n <= 2) :
			return
		
		#  result indicator
		status = False
		#  Auxiliary variables
		a = 0
		b = 0
		c = 0
		left = n - 2
		right = n - 1
		#  Auxiliary list
		temp = [0] * (n)
		i = 0
		#  Copy list elements
		while (i < n) :
			temp[i] = arr[i]
			i += 1
		
		#  Sort list elements
		temp.sort()
		i = 0
		#  Calculate square of each element
		while (i < n) :
			temp[i] = temp[i] * temp[i]
			i += 1
		
		i = 0
		while (i < n) :
			a = temp[i]
			while (left > i) :
				c = temp[right]
				b = temp[left]
				if ((c - b) == a) :
					#  Display pythagorean triplet pair
					print("\n", int(math.sqrt(a)) ,"² + ", 
                          int(math.sqrt(b)) ,"² = ", 
                          int(math.sqrt(c)) ,"²", end = "",sep="")
					right -= 1
					left += 1
					status = True
				elif ((c - b) > a) :
					right -= 1
				else :
					left -= 1
				
			
			#  Reset the left and right value
			left = n - 2
			right = n - 1
			i += 1
		
		if (status == False) :
			print("\n None ")
		
	

def main() :
	task = PythagoreanTriplet()
	arr = [6, 29, 4, 15, 8, 20, 11, 17, 10, 21]
	n = len(arr)
	#  6² + 8² = 10²
	#  8² + 15² = 17²
	#  20² + 21² = 29²
	task.findPythagoreanTriplet(arr, n)

if __name__ == "__main__": main()

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
#    Ruby program for
#    Find pythagorean triplet in array
class PythagoreanTriplet 
	#  Display array elements
	def printArray(arr, n) 
		i = 0
		while (i < n) 
			print(" ", arr[i])
			i += 1
		end

	end

	def findPythagoreanTriplet(arr, n) 
		if (n <= 2) 
			return
		end

		#  result indicator
		status = false
		#  Auxiliary variables
		a = 0
		b = 0
		c = 0
		left = n - 2
		right = n - 1
		#  Auxiliary array
		#  Sort array elements
		temp = arr.sort
		i = 0
		#  Calculate square of each element
		while (i < n) 
			temp[i] = temp[i] * temp[i]
			i += 1
		end

		i = 0
		while (i < n) 
			a = temp[i]
			while (left > i) 
				c = temp[right]
				b = temp[left]
				if ((c - b) == a) 
					#  Display pythagorean triplet pair
					print("\n", (Math.sqrt(a).to_i) ,"²+", 
                      (Math.sqrt(b).to_i) ,"² = ", (Math.sqrt(c).to_i) ,"²")
					right -= 1
					left += 1
					status = true
				elsif ((c - b) > a) 
					right -= 1
				else
 
					left -= 1
				end

			end

			#  Reset the left and right value
			left = n - 2
			right = n - 1
			i += 1
		end

		if (status == false) 
			print("\n None \n")
		end

	end

end

def main() 
	task = PythagoreanTriplet.new()
	arr = [6, 29, 4, 15, 8, 20, 11, 17, 10, 21]
	n = arr.length
	#  6² + 8² = 10²
	#  8² + 15² = 17²
	#  20² + 21² = 29²
	task.findPythagoreanTriplet(arr, n)
end

main()

Output

6²+8² = 10²
8²+15² = 17²
20²+21² = 29²
import scala.collection.mutable._;
/*
    Scala program for
    Find pythagorean triplet in array
*/
class PythagoreanTriplet()
{
	// Display array elements
	def printArray(arr: Array[Int], n: Int): Unit = {
		var i: Int = 0;
		while (i < n)
		{
			print(" " + arr(i));
			i += 1;
		}
	}
	def findPythagoreanTriplet(arr: Array[Int], n: Int): Unit = {
		if (n <= 2)
		{
			return;
		}
		// result indicator
		var status: Boolean = false;
		// Auxiliary variables
		var a: Int = 0;
		var b: Int = 0;
		var c: Int = 0;
		var left: Int = n - 2;
		var right: Int = n - 1;
		// Auxiliary array
      	// Sort array elements
		var temp: Array[Int]  = arr.sorted;
		var i = 0;
		// Calculate square of each element
		while (i < n)
		{
			temp(i) = temp(i) * temp(i);
			i += 1;
		}
		i = 0;
		while (i < n)
		{
			a = temp(i);
			while (left > i)
			{
				c = temp(right);
				b = temp(left);
				if ((c - b) == a)
				{
					// Display pythagorean triplet pair
					print("\n" + (scala.math.sqrt(a).toInt) + "² + " + 
                          (scala.math.sqrt(b).toInt) + "² = " + 
                          (scala.math.sqrt(c).toInt) + "²");
					right -= 1;
					left += 1;
					status = true;
				}
				else if ((c - b) > a)
				{
					right -= 1;
				}
				else
				{
					left -= 1;
				}
			}
			// Reset the left and right value
			left = n - 2;
			right = n - 1;
			i += 1;
		}
		if (status == false)
		{
			print("\n None \n");
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: PythagoreanTriplet = new PythagoreanTriplet();
		var arr: Array[Int] = Array(6, 29, 4, 15, 8, 20, 11, 17, 10, 21);
		var n: Int = arr.length;
		/*
		  6² + 8² = 10²
		  8² + 15² = 17²
		  20² + 21² = 29²
		*/
		task.findPythagoreanTriplet(arr, n);
	}
}

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²
import Foundation;
/*
    Swift 4 program for
    Find pythagorean triplet in array
*/
class PythagoreanTriplet
{
	// Display array elements
	func printArray(_ arr: [Int], _ n: Int)
	{
		var i: Int = 0;
		while (i < n)
		{
			print(" ", arr[i], terminator: "");
			i += 1;
		}
	}
	func findPythagoreanTriplet(_ arr: [Int], _ n: Int)
	{
		if (n <= 2)
		{
			return;
		}
		// result indicator
		var status: Bool = false;
		// Auxiliary variables
		var a: Int = 0;
		var b: Int = 0;
		var c: Int = 0;
		var left: Int = n - 2;
		var right: Int = n - 1;
		// Auxiliary array
		var temp: [Int] = Array(repeating: 0, count: n);
		var i: Int = 0;
		// Copy array elements
		while (i < n)
		{
			temp[i] = arr[i];
			i += 1;
		}
		// Sort array elements
		temp = temp.sorted();
		i = 0;
		// Calculate square of each element
		while (i < n)
		{
			temp[i] = temp[i] * temp[i];
			i += 1;
		}
		i = 0;
		while (i < n)
		{
			a = temp[i];
			while (left > i)
			{
				c = temp[right];
				b = temp[left];
				if ((c - b) == a)
				{
					// Display pythagorean triplet pair
					print((Int(Double(a).squareRoot())) ,"² + ", 
                          (Int(Double(b).squareRoot())) ,"² = ", 
                          (Int(Double(c).squareRoot())) ,"²");
					right -= 1;
					left += 1;
					status = true;
				}
				else if ((c - b) > a)
				{
					right -= 1;
				}
				else
				{
					left -= 1;
				}
			}
			// Reset the left and right value
			left = n - 2;
			right = n - 1;
			i += 1;
		}
		if (status == false)
		{
			print("\n None ");
		}
	}
}
func main()
{
	let task: PythagoreanTriplet = PythagoreanTriplet();
	let arr: [Int] = [6, 29, 4, 15, 8, 20, 11, 17, 10, 21];
	let n: Int = arr.count;
	/*
	  6² + 8² = 10²
	  8² + 15² = 17²
	  20² + 21² = 29²
	*/
	task.findPythagoreanTriplet(arr, n);
}
main();

Output

6 ² +  8 ² =  10 ²
8 ² +  15 ² =  17 ²
20 ² +  21 ² =  29 ²
/*
    Kotlin program for
    Find pythagorean triplet in array
*/
class PythagoreanTriplet
{
	// Display array elements
	fun printArray(arr: Array < Int > , n: Int): Unit
	{
		var i: Int = 0;
		while (i < n)
		{
			print(" " + arr[i]);
			i += 1;
		}
	}
	fun findPythagoreanTriplet(arr: Array < Int > , n: Int): Unit
	{
		if (n <= 2)
		{
			return;
		}
		// result indicator
		var status: Boolean = false;
		// Auxiliary variables
		var a: Int ;
		var b: Int ;
		var c: Int ;
		var left: Int = n - 2;
		var right: Int = n - 1;
		// Auxiliary array
		var temp: Array < Int > = Array(n)
		{
			0
		};
		var i: Int = 0;
		// Copy array elements
		while (i < n)
		{
			temp[i] = arr[i];
			i += 1;
		}
		// Sort array elements
		temp.sort();
		i = 0;
		// Calculate square of each element
		while (i < n)
		{
			temp[i] = temp[i] * temp[i];
			i += 1;
		}
		i = 0;
		while (i < n)
		{
			a = temp[i];
			while (left > i)
			{
				c = temp[right];
				b = temp[left];
				if ((c - b) == a)
				{
					// Display pythagorean triplet pair
					print("\n" + (Math.sqrt(a.toDouble()).toInt()) + "² + " +
                          (Math.sqrt(b.toDouble()).toInt()) + "² = " + 
                          (Math.sqrt(c.toDouble()).toInt()) + "²");
					right -= 1;
					left += 1;
					status = true;
				}
				else if ((c - b) > a)
				{
					right -= 1;
				}
				else
				{
					left -= 1;
				}
			}
			// Reset the left and right value
			left = n - 2;
			right = n - 1;
			i += 1;
		}
		if (status == false)
		{
			print("\n None \n");
		}
	}
}
fun main(args: Array < String > ): Unit
{
	val task: PythagoreanTriplet = PythagoreanTriplet();
	val arr: Array < Int > = arrayOf(6, 29, 4, 15, 8, 20, 11, 17, 10, 21);
	val n: Int = arr.count();
	/*
	  6² + 8² = 10²
	  8² + 15² = 17²
	  20² + 21² = 29²
	*/
	task.findPythagoreanTriplet(arr, n);
}

Output

6² + 8² = 10²
8² + 15² = 17²
20² + 21² = 29²




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment