# Lagrange’s four square theorem

• Last Updated : 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

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

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++

 // CPP program for Lagrange's four square identity#include 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

 // 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

## Python3

 # 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#

 // 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

 

## Javascript

 
Output:
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

My Personal Notes arrow_drop_up