Open In App

# Squares of Matrix Diagonal Elements

You have given an integer matrix with odd dimensions. Find the square of the diagonal elements on both sides.

Examples:

Input  :  1 2 3
4 5 6
7 8 9
Output :  Diagonal one: 1 25 81
Diagonal two: 9 25 49
Input  :  2 5 7
3 7 2
5 6 9
Output :  Diagonal one : 4 49 81
Diagonal two : 49 49 25

Method 1: Firstly we find the diagonal element of the matrix and then we print the square of that element.

## C++

 // Simple CPP program to print squares of// diagonal elements.#include using namespace std; #define MAX 100 // function of diagonal squarevoid diagonalsquare(int mat[][MAX], int row,                                int column){    // This loop is for finding square of first    // diagonal elements    cout << "Diagonal one : ";    for (int i = 0; i < row; i++)    {        for (int j = 0; j < column; j++)             // if this condition will become true            // then we will get diagonal element            if (i == j)                 // printing square of diagonal element                cout << mat[i][j] * mat[i][j] << " ";    }     // This loop is for finding square of second    // side of diagonal elements    cout << " \nDiagonal two : ";    for (int i = 0; i < row; i++)    {        for (int j = 0; j < column; j++)             // if this condition will become true            // then we will get second side diagonal            // element            if (i + j == column - 1)                 // printing square of diagonal element                cout << mat[i][j] * mat[i][j] << " ";    }} // Driver codeint main(){    int mat[][MAX] = { { 2, 5, 7 },                    { 3, 7, 2 },                    { 5, 6, 9 } };    diagonalsquare(mat, 3, 3);    return 0;}

## Java

 // Simple JAva program to print squares of// diagonal elements.import java.io.*; class GFG{    static int MAX =100;         // function of diagonal square    static void diagonalsquare(int mat[][], int row,                                        int column)    {        // This loop is for finding square of first        // diagonal elements        System.out.print( "Diagonal one : ");        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)                     // if this condition will become true                // then we will get diagonal element                if (i == j)                         // printing square of diagonal element                    System.out.print ( mat[i][j] * mat[i][j] +" ");        }        System.out.println();             // This loop is for finding square of second        // side of diagonal elements        System.out.print("Diagonal two : ");        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)                     // if this condition will become true                // then we will get second side diagonal                // element                if (i + j == column - 1)                         // printing square of diagonal element                    System.out.print(mat[i][j] * mat[i][j] +" ");        }    }         // Driver code    public static void main (String[] args)    {        int mat[][] = { { 2, 5, 7 },                        { 3, 7, 2 },                        { 5, 6, 9 } };        diagonalsquare(mat, 3, 3);             }} // This code is contributed by vt_m.

## Python3

 # Simple Python program# to print squares# of diagonal elements. # function of diagonal squaredef diagonalsquare(mat, row, column) :     # This loop is for finding square    # of first diagonal elements    print ("Diagonal one : ", end = "")    for i in range(0, row) :        for j in range(0, column) :             # if this condition will            # become true then we will            # get diagonal element            if (i == j) :                # printing square of                # diagonal element                print ("{} ".format(mat[i][j] *                                    mat[i][j]), end = "")     # This loop is for finding    # square of second side    # of diagonal elements    print (" \nDiagonal two : ", end = "")    for i in range(0, row) :        for j in range(0, column) :             # if this condition will become            # true then we will get second            # side diagonal element            if (i + j == column - 1) :                 # printing square of diagonal                # element                print ("{} ".format(mat[i][j] *                                    mat[i][j]), end = "")  # Driver codemat = [[ 2, 5, 7 ],        [ 3, 7, 2 ],        [ 5, 6, 9 ]]diagonalsquare(mat, 3, 3) # This code is contributed by# Manish Shaw(manishshaw1)

## C#

 // Simple C# program to print squares of// diagonal elements.using System; class GFG{    //static int MAX =100;         // function of diagonal square    static void diagonalsquare(int [,]mat, int row,                                        int column)    {                 // This loop is for finding        // square of first        // diagonal elements        Console.Write( "Diagonal one : ");        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)                     // if this condition will become true                // then we will get diagonal element                if (i == j)                         // printing square of diagonal element                    Console.Write ( mat[i,j] * mat[i,j] +" ");        }        Console.WriteLine();             // This loop is for finding        // square of second side of        // diagonal elements        Console.Write("Diagonal two : ");        for (int i = 0; i < row; i++)        {            for (int j = 0; j < column; j++)                     // if this condition will become true                // then we will get second side diagonal                // element                if (i + j == column - 1)                         // printing square of diagonal element                    Console.Write(mat[i,j] * mat[i,j] +" ");        }    }         // Driver code    public static void Main ()    {        int [,]mat = {{ 2, 5, 7 },                    { 3, 7, 2 },                    { 5, 6, 9 }};        diagonalsquare(mat, 3, 3);             }} // This code is contributed by anuj_67.



## Javascript

 // Simple JS program to print squares of// diagonal elements. let MAX = 100 // function of diagonal squarefunction diagonalsquare(mat, row, column){    // This loop is for finding square of first    // diagonal elements    process.stdout.write("Diagonal one : ");    for (var i = 0; i < row; i++)    {        for (var j = 0; j < column; j++)             // if this condition will become true            // then we will get diagonal element            if (i == j)                 // printing square of diagonal element                process.stdout.write(mat[i][j] * mat[i][j] + " ");    }     // This loop is for finding square of second    // side of diagonal elements    process.stdout.write(" \nDiagonal two : ");    for (var i = 0; i < row; i++)    {        for (var j = 0; j < column; j++)             // if this condition will become true            // then we will get second side diagonal            // element            if (i + j == column - 1)                 // printing square of diagonal element                process.stdout.write(mat[i][j] * mat[i][j] + " ");    }} // Driver codelet mat = [[ 2, 5, 7 ], [ 3, 7, 2 ], [ 5, 6, 9 ] ];diagonalsquare(mat, 3, 3);  // This code is contributed by phasing17

Output

Diagonal one : 4 49 81
Diagonal two : 49 49 25

Time Complexity : O(n*n)
Auxiliary Space: O(1)

Method 2:
An efficient solution is also the same as in the naive approach but in this, we are taking only one loop to find the diagonal element and then we print the square of that element.

## C++

 // Efficient CPP program to print squares of// diagonal elements.#include using namespace std; #define MAX 100 // function of diagonal squarevoid diagonalsquare(int mat[][MAX], int row,                                int column){    // This loop is for finding of square of    // the first side of diagonal elements    cout << " \nDiagonal one : ";    for (int i = 0; i < row; i++)    {         // printing direct square of diagonal        // element there is no need to check        // condition        cout << mat[i][i] * mat[i][i] << " ";    }     // This loop is for finding square of the    // second side of diagonal elements    cout << " \nDiagonal two : ";    for (int i = 0; i < row; i++)    {        // printing direct square of diagonal        // element in the second side        cout << mat[i][row - i - 1] * mat[i][row - i - 1]            << " ";    }} // Driver codeint main(){    int mat[][MAX] = { { 2, 5, 7 },                    { 3, 7, 2 },                    { 5, 6, 9 } };    diagonalsquare(mat, 3, 3);    return 0;}

## Java

 // Efficient JAVA program to print squares of// diagonal elements.import java.io.*; class GFG{    static int MAX =100;         // function of diagonal square    static void diagonalsquare(int mat[][], int row, int column)    {        // This loop is for finding of square of        // the first side of diagonal elements        System.out.print (" Diagonal one : ");        for (int i = 0; i < row; i++)        {                 // printing direct square of diagonal            // element there is no need to check            // condition            System.out.print( mat[i][i] * mat[i][i] +" ");        }        System.out.println();             // This loop is for finding square of the        // second side of diagonal elements        System.out.print( " Diagonal two : ");        for (int i = 0; i < row; i++)        {            // printing direct square of diagonal            // element in the second side            System.out.print( mat[i][row - i - 1] *                            mat[i][row - i - 1] + " ");        }    }         // Driver code    public static void main (String[] args)    {        int mat[][] = { { 2, 5, 7 },                        { 3, 7, 2 },                        { 5, 6, 9 } };        diagonalsquare(mat, 3, 3);         }} // This code is contributed by vt_m.

## Python3

 # Efficient Python program# to print squares of# diagonal elements. # function of diagonal squaredef diagonalsquare(mat, row,                column) :         # This loop is for finding    # of square of the first    # side of diagonal elements    print ("Diagonal one : ",                    end = "")    for i in range(0, row) :         # printing direct square        # of diagonal element        # there is no need to        # check condition        print (mat[i][i] *            mat[i][i], end = " ")          # This loop is for finding    # square of the second side    # of diagonal elements    print ("\nDiagonal two : ",                        end = "")         for i in range(0, row) :                    # printing direct square        # of diagonal element in        # the second side        print (mat[i][row - i - 1] *            mat[i][row - i - 1] ,                        end = " ") # Driver codemat = [[2, 5, 7 ],    [3, 7, 2 ],    [5, 6, 9 ]]diagonalsquare(mat, 3, 3)     # This code is contributed by# Manish Shaw(manishshaw1)

## C#

 // Efficient C# program to print// squares of diagonal elements.using System; class GFG {         static int MAX =100;         // function of diagonal square    static void diagonalsquare(int [,] mat,                            int row,                            int column)    {                 // This loop is for finding of        // square of the first side of        // diagonal elements        Console.Write ("Diagonal one : ");                 for (int i = 0; i < row; i++)        {                 // printing direct square of diagonal            // element there is no need to check            // condition            Console.Write(mat[i, i] *                        mat[i, i] +" ");        }        Console.WriteLine();             // This loop is for finding square        // of the second side of diagonal        // elements        Console.Write("Diagonal two : ");        for (int i = 0; i < row; i++)        {            // printing direct square of diagonal            // element in the second side            Console.Write(mat[i, row - i - 1] *                        mat[i, row - i - 1] + " ");        }    }         // Driver code    public static void Main ()    {        int [,] mat = new int[,]{{ 2, 5, 7 },                                { 3, 7, 2 },                                { 5, 6, 9 }};        diagonalsquare(mat, 3, 3);         }} // This code is contributed by KRV.



## Javascript

 // Efficient JS program to print squares of// diagonal elements.let MAX = 100     // function of diagonal square    function diagonalsquare(mat, row, column){    // This loop is for finding of square of    // the first side of diagonal elements    console.log(" Diagonal one : ");    for (var i = 0; i < row; i++) {         // printing direct square of diagonal        // element there is no need to check        // condition        process.stdout.write(mat[i][i] * mat[i][i] + " ");    }     // This loop is for finding square of the    // second side of diagonal elements    process.stdout.write(" \nDiagonal two : ");    for (var i = 0; i < row; i++) {        // printing direct square of diagonal        // element in the second side        process.stdout.write(mat[i][row - i - 1]                                 * mat[i][row - i - 1]                             + " ");    }} // Driver codelet mat = [ [ 2, 5, 7 ], [ 3, 7, 2 ], [ 5, 6, 9 ] ];diagonalsquare(mat, 3, 3); // This code is contributed by phasing17.

Output

Diagonal one : 4 49 81
Diagonal two : 49 49 25

Time Complexity: O(n)
Auxiliary Space:  O(1)