 GFG App
Open App Browser
Continue

# 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 square` `void` `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 code` `int` `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 square` `def` `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 code` `mat ``=` `[[ ``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.`

## PHP

 ``

## Javascript

 `// Simple 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 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 code` `let 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 square` `void` `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 code` `int` `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 square` `def` `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 code` `mat ``=` `[[``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.`

## PHP

 ``

## 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 code` `let 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)

My Personal Notes arrow_drop_up