# Pythagorean Quadruple

Given four points, check whether they form Pythagorean Quadruple.

It is defined as a tuple of integers a, b, c, d such that . They are basically the solutions of **Diophantine Equations**. In the geometric interpretation it represents a **cuboid** with integer side lengths |a|, |b|, |c| and whose space diagonal is |d| .

The cuboids sides shown here are examples of pythagorean quadruples.

It is primitive when their greatest common divisor is 1. Every Pythagorean quadruple is an integer multiple of a primitive quadruple. We can generate the set of primitive pythagorean quadruples for which a is odd can be generated by formula :

a = m^{2}+ n^{2}– p^{2}– q^{2},

b = 2(mq + np),

c = 2(nq – mp),

d = m^{2}+ n^{2}+ p^{2}+ q^{2}

where m, n, p, q are non-negative integers with greatest common divisor 1 such that m + n + p + q are odd. Thus, all primitive Pythagorean quadruples are characterized by **Lebesgue’s identity**.

(m^{2}+ n^{2}+ p^{2}+ q^{2})^{2}= (2mq + 2nq)^{2}+ 2(nq – mp)^{2}+ (m^{2}+ n^{2}– p^{2}– q^{2})m^{2}+ n^{2}– p^{2}– q^{2}

## C++

`// C++ code to detect Pythagorean Quadruples. ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// function for checking ` `bool` `pythagorean_quadruple(` `int` `a, ` `int` `b, ` `int` `c, ` ` ` `int` `d) ` `{ ` ` ` `int` `sum = a * a + b * b + c * c; ` ` ` `if` `(d * d == sum) ` ` ` `return` `true` `; ` ` ` `else` ` ` `return` `false` `; ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `int` `a = 1, b = 2, c = 2, d = 3; ` ` ` `if` `(pythagorean_quadruple(a, b, c, d)) ` ` ` `cout << ` `"Yes"` `<< endl; ` ` ` `else` ` ` `cout << ` `"No"` `<< endl; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java code to detect Pythagorean Quadruples. ` `import` `java.io.*; ` `import` `java.util.*; ` ` ` `class` `GFG { ` ` ` `// function for checking ` `static` `Boolean pythagorean_quadruple(` `int` `a, ` `int` `b, ` ` ` `int` `c, ` `int` `d) ` `{ ` ` ` `int` `sum = a * a + b * b + c * c; ` ` ` `if` `(d * d == sum) ` ` ` `return` `true` `; ` ` ` `else` ` ` `return` `false` `; ` `} ` ` ` `// Driver function ` ` ` `public` `static` `void` `main (String[] args) { ` ` ` `int` `a = ` `1` `, b = ` `2` `, c = ` `2` `, d = ` `3` `; ` ` ` `if` `(pythagorean_quadruple(a, b, c, d)) ` ` ` `System.out.println(` `"Yes"` `); ` ` ` `else` ` ` `System.out.println(` `"No"` `); ` ` ` ` ` `} ` `} ` `// This code is contributed by Gitanjali. ` |

*chevron_right*

*filter_none*

## Python3

`# Python code to detect ` `# Pythagorean Quadruples. ` `import` `math ` ` ` `# function for checking ` `def` `pythagorean_quadruple(a,b, c, d): ` ` ` ` ` `sum` `=` `a ` `*` `a ` `+` `b ` `*` `b ` `+` `c ` `*` `c; ` ` ` `if` `(d ` `*` `d ` `=` `=` `sum` `): ` ` ` `return` `True` ` ` `else` `: ` ` ` `return` `False` ` ` `#driver code ` `a ` `=` `1` `b ` `=` `2` `c ` `=` `2` `d ` `=` `3` `if` `(pythagorean_quadruple(a, b, c, d)): ` ` ` `print` `(` `"Yes"` `) ` `else` `: ` ` ` `print` `(` `"No"` `) ` ` ` `# This code is contributed ` `# by Gitanjali. ` |

*chevron_right*

*filter_none*

## C#

`// C# code to detect ` `// Pythagorean Quadruples. ` `using` `System; ` ` ` `class` `GFG { ` ` ` ` ` `// function for checking ` ` ` `static` `Boolean pythagorean_quadruple(` `int` `a, ` ` ` `int` `b, ` `int` `c, ` `int` `d) ` ` ` `{ ` ` ` `int` `sum = a * a + b * b + c * c; ` ` ` `if` `(d * d == sum) ` ` ` `return` `true` `; ` ` ` `else` ` ` `return` `false` `; ` ` ` `} ` ` ` ` ` `// Driver function ` ` ` `public` `static` `void` `Main () { ` ` ` ` ` `int` `a = 1, b = 2, c = 2, d = 3; ` ` ` ` ` `if` `(pythagorean_quadruple(a, b, c, d)) ` ` ` `Console.WriteLine(` `"Yes"` `); ` ` ` `else` ` ` `Console.WriteLine(` `"No"` `); ` ` ` ` ` `} ` `} ` ` ` `// This code is contributed by vt_M. ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// php code to detect Pythagorean Quadruples. ` ` ` `// function for checking ` `function` `pythagorean_quadruple(` `$a` `, ` `$b` `, ` `$c` `, ` `$d` `) ` `{ ` ` ` `$sum` `= ` `$a` `* ` `$a` `+ ` `$b` `* ` `$b` `+ ` `$c` `* ` `$c` `; ` ` ` ` ` `if` `(` `$d` `* ` `$d` `== ` `$sum` `) ` ` ` `return` `true; ` ` ` `else` ` ` `return` `false; ` `} ` ` ` `// Driver Code ` ` ` `$a` `= 1; ` `$b` `= 2; ` `$c` `= 2; ` `$d` `= 3; ` ` ` ` ` `if` `(pythagorean_quadruple(` `$a` `, ` `$b` `, ` `$c` `, ` `$d` `)) ` ` ` `echo` `"Yes"` `; ` ` ` `else` ` ` `echo` `"No"` `; ` ` ` `// This code is contributed by anuj_67. ` `?> ` |

*chevron_right*

*filter_none*

Output:

Yes

## Recommended Posts:

- Count number of pairs of lines intersecting at a Point
- Maximum number of region in which N non-parallel lines can divide a plane
- Check whether two points (x1, y1) and (x2, y2) lie on same side of a given line or not
- Find the area of quadrilateral when diagonal and the perpendiculars to it from opposite vertices are given
- Find the diagonal of the Cube
- Concentric Hexagonal Numbers
- Game Theory (Normal form game) | Set 2 (Game with Pure Strategy)
- Find area of the larger circle when radius of the smaller circle and difference in the area is given
- Check whether Quadrilateral is valid or not if angles are given
- Check whether the triangle is valid or not if angles are given
- Perimeter of an Ellipse
- Program to Find the Incenter of a Triangle
- Number of intersections between two ranges
- Line Clipping | Set 2 (Cyrus Beck Algorithm)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.