Lagrange's four square theorem - GeeksforGeeks

05 May, 2021
Lagrange’s Four Square Theorem states that every natural number can be written as sum of squares of four non negative integers.
For eg. Similarly Similarly for any 
The above identity may be derived from Euler’s four square identity: which says we can write a product of 2 numbers (which can be written as sum of 4 squares) as the sum of 4 squares.  
C++
Java
Python3
C#
PHP
Javascript
// CPP program for Lagrange's four square identity#include <bits/stdc++.h>using namespace std; // Prints all the possible combinations 4 numbers// whose sum of squares is equal to the given no.void printFourSquares(int a){    // loops checking the sum of squares    for (int i = 0; i * i <= a; i++) {        for (int j = i; j * j <= a; j++) {            for (int k = j; k * k <= a; k++) {                for (int l = k; l * l <= a; l++) {                     // if sum of four squares equals                    // the given no.                    if (i * i + j * j + k * k + l * l == a) {                         // printing the numbers                        cout << a << " = " << i << "*" << i                            << " + " << j << "*" << j << " + ";                        cout << k << "*" << k << " + "                             << l << "*" << l << "\n";                    }                }            }        }    }} // Driver Codeint main(){    int a = 74;    // 74 = 0*0 + 0*0 + 5*5 + 7*7    // 74 = 0*0 + 1*1 + 3*3 + 8*8    // 74 = 0*0 + 3*3 + 4*4 + 7*7    // 74 = 1*1 + 1*1 + 6*6 + 6*6    // 74 = 2*2 + 3*3 + 5*5 + 6*6     printFourSquares(a);     return 0;}
// Java program for Lagrange's four square identityclass GFG{// Prints all the possible combinations 4 numbers// whose sum of squares is equal to the given no.static void printFourSquares(int a){    // loops checking the sum of squares    for (int i = 0; i * i <= a; i++)    {        for (int j = i; j * j <= a; j++)        {            for (int k = j; k * k <= a; k++)            {                for (int l = k; l * l <= a; l++)                {                     // if sum of four squares equals                    // the given no.                    if (i * i + j * j + k * k + l * l == a)                    {                         // printing the numbers                        System.out.print( a + " = " + i + "*" + i                                        + " + " + j + "*" + j + " + ");                        System.out.println( k + "*" + k + " + "                                           + l + "*" + l);                    }                }            }        }    }} // Driver Codepublic static void main(String[] args){    int a = 74;    // 74 = 0*0 + 0*0 + 5*5 + 7*7    // 74 = 0*0 + 1*1 + 3*3 + 8*8    // 74 = 0*0 + 3*3 + 4*4 + 7*7    // 74 = 1*1 + 1*1 + 6*6 + 6*6    // 74 = 2*2 + 3*3 + 5*5 + 6*6     printFourSquares(a);}}// This code is contributed by smitha
# Python program for Lagrange's four square identity # Prints all the possible combinations 4 numbers# whose sum of squares is equal to the given no. def printFourSquares(a) :     # loops checking the sum of squares    i = 0    while (i * i <= a) :        j = i        while (j * j <= a) :            k = j            while (k * k <= a) :                l = k                while (l * l <= a) :                     # if sum of four squares equals                    # the given no.                    if (i * i + j * j + k * k + l * l == a) :                                 # printing the numbers                        print ("{} = {}*{} + {}*{} +".                                format(a,i,i,j,j), end = " ")                        print ("{}*{} + {}*{}".                                   format(k,k,l,l), end="\n")                    l = l + 1                k = k + 1            j = j + 1        i = i + 1                     # Driver Codea = 74 # 74 = 0*0 + 0*0 + 5*5 + 7*7# 74 = 0*0 + 1*1 + 3*3 + 8*8# 74 = 0*0 + 3*3 + 4*4 + 7*7# 74 = 1*1 + 1*1 + 6*6 + 6*6# 74 = 2*2 + 3*3 + 5*5 + 6*6 printFourSquares(a) # This code is contributed by Manish Shaw# (manishshaw1)
// C# program for Lagrange's four square identityusing System; class GFG{// Prints all the possible combinations 4 numbers// whose sum of squares is equal to the given no.static void printFourSquares(int a){    // loops checking the sum of squares    for (int i = 0; i * i <= a; i++)    {        for (int j = i; j * j <= a; j++)        {            for (int k = j; k * k <= a; k++)  {                for (int l = k; l * l <= a; l++)                {                     // if sum of four squares equals                    // the given no.                    if (i * i + j * j + k * k + l * l == a)                    {                         // printing the numbers                        Console.Write( a + " = " + i + "*" + i + " + "                                      + j + "*" + j + " + ");                        Console.Write( k + "*" + k + " + "                                       + l + "*" + l + "\n");                    }                }            }        }    }} // Driver codepublic static void Main(){    int a = 74;    // 74 = 0*0 + 0*0 + 5*5 + 7*7    // 74 = 0*0 + 1*1 + 3*3 + 8*8    // 74 = 0*0 + 3*3 + 4*4 + 7*7    // 74 = 1*1 + 1*1 + 6*6 + 6*6    // 74 = 2*2 + 3*3 + 5*5 + 6*6     printFourSquares(a);}}// This code is contributed by Smitha
<?php//PHP program for Lagrange's four square identity // Prints all the possible combinations 4 numbers// whose sum of squares is equal to the given no. function printFourSquares($a){    // loops checking the sum of squares    for ($i = 0; $i * $i <= $a; $i++) {        for ( $j = $i; $j * $j <= $a; $j++) {            for ($k = $j; $k * $k <= $a; $k++) {                for ($l = $k; $l * $l <= $a; $l++) {                     // if sum of four squares equals                    // the given no.                    if ($i * $i + $j * $j + $k * $k                                    + $l * $l == $a)                    {                         // printing the numbers                        echo $a , " = " , $i , "*" ,$i,                         " + " , $j , "*" , $j , " + ";                        echo $k , "*" , $k , " + ",                              $l , "*" , $l , "\n";                    }                }            }        }    }} // Driver Code    $a = 74;    // 74 = 0*0 + 0*0 + 5*5 + 7*7    // 74 = 0*0 + 1*1 + 3*3 + 8*8    // 74 = 0*0 + 3*3 + 4*4 + 7*7    // 74 = 1*1 + 1*1 + 6*6 + 6*6    // 74 = 2*2 + 3*3 + 5*5 + 6*6     printFourSquares($a); // This code is contributed by ajit.?>
<script> // Javascript program for Lagrange's four// square identity // Prints all the possible combinations// 4 numbers whose sum of squares is// equal to the given no.function printFourSquares(a){         // Loops checking the sum of squares    for(let i = 0; i * i <= a; i++)    {        for(let j = i; j * j <= a; j++)        {            for(let k = j; k * k <= a; k++)             {                for(let l = k; l * l <= a; l++)                {                                         // If sum of four squares equals                    // the given no.                    if (i * i + j * j + k * k + l * l == a)                    {                         // Printing the numbers                        document.write(a + " = " + i + "*" +                                       i + " + " + j + "*" +                                       j + " + ");                        document.write(k + "*" + k + " + " +                                       l + "*" + l + "</br>");                    }                }            }        }    }} // Driver codelet a = 74; // 74 = 0*0 + 0*0 + 5*5 + 7*7// 74 = 0*0 + 1*1 + 3*3 + 8*8// 74 = 0*0 + 3*3 + 4*4 + 7*7// 74 = 1*1 + 1*1 + 6*6 + 6*6// 74 = 2*2 + 3*3 + 5*5 + 6*6 printFourSquares(a); // This code is contributed by decode2207 </script>
74 = 0*0 + 0*0 + 5*5 + 7*7
74 = 0*0 + 1*1 + 3*3 + 8*8
74 = 0*0 + 3*3 + 4*4 + 7*7
74 = 1*1 + 1*1 + 6*6 + 6*6
74 = 2*2 + 3*3 + 5*5 + 6*6
 
Smitha Dinesh Semwal
jit_t
manishshaw1
decode2207
number-theory
Mathematical
number-theory
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Program for factorial of a number
Print all possible combinations of r elements in a given array of size n
Program for Decimal to Binary Conversion
The Knight's tour problem | Backtracking-1
Operators in C / C++
Find minimum number of coins that make a given value
Program to find sum of elements in a given array