Related Articles

# Find the product of sum of two diagonals of a square Matrix

• Difficulty Level : Easy
• Last Updated : 20 Apr, 2021

Given a square matrix mat consisting of integers of size NxN, the task is to calculate the product between the sums of its diagonal.
Examples:

```Input: mat[][] = {{5, 8, 1},
{5, 10, 3},
{-6, 17, -9}}
Output: 30
Sum of primary diagonal = 5 + 10 + (-9) = 6.
Sum of secondary diagonal = 1 + 10 + (-6) = 5.
Product = 6 * 5 = 30.

Input: mat[][] = {{22, -8, 11},
{55, 87, -1},
{-61, 69, 19}}
Output: 4736```

Naive approach: Traverse the entire matrix and find the diagonal elements. Calculate the sums across the two diagonals of a square matrix. Then, just take the product of the two sums obtained.
Time complexity: O(N2)
Naive approach: Traverse just the diagonal elements instead of the entire matrix by observing the pattern in the indices of the diagonal elements.
Below is the implementation of this approach:

## CPP

 `// C++ program to find the product``// of the sum of diagonals.` `#include ``using` `namespace` `std;` `// Function to find the product``// of the sum of diagonals.``long` `long` `product(vector> &mat, ``int` `n)``{``    ``// Initialize sums of diagonals``    ``long` `long` `d1 = 0, d2 = 0;` `    ``for` `(``int` `i = 0; i < n; i++)``    ``{``        ``d1 += mat[i][i];``        ``d2 += mat[i][n - i - 1];``    ``}``    ` `    ``// Return the answer``    ``return` `1LL * d1 * d2;``}` `// Driven code``int` `main()``{``    ``vector> mat = {{ 5, 8, 1},``                               ``{ 5, 10, 3},``                               ``{ -6, 17, -9}};``                               ` `    ``int` `n = mat.size();``    ` `    ``// Function call``    ``cout << product(mat, n);``    ` `    ``return` `0;``}`

## Java

 `// Java program to find the product``// of the sum of diagonals.`  `class` `GFG{`` ` `// Function to find the product``// of the sum of diagonals.``static` `long` `product(``int` `[][]mat, ``int` `n)``{``    ``// Initialize sums of diagonals``    ``long` `d1 = ``0``, d2 = ``0``;`` ` `    ``for` `(``int` `i = ``0``; i < n; i++)``    ``{``        ``d1 += mat[i][i];``        ``d2 += mat[i][n - i - ``1``];``    ``}``     ` `    ``// Return the answer``    ``return` `1L * d1 * d2;``}`` ` `// Driven code``public` `static` `void` `main(String[] args)``{``    ``int` `[][]mat = {{ ``5``, ``8``, ``1``},``                               ``{ ``5``, ``10``, ``3``},``                               ``{ -``6``, ``17``, -``9``}};``                                ` `    ``int` `n = mat.length;``     ` `    ``// Function call``    ``System.out.print(product(mat, n));``     ` `}``}` `// This code is contributed by 29AjayKumar`

## Python3

 `# Python3 program to find the product``# of the sum of diagonals.` `# Function to find the product``# of the sum of diagonals.``def` `product(mat,n):` `    ``# Initialize sums of diagonals``    ``d1 ``=` `0``    ``d2 ``=` `0` `    ``for` `i ``in` `range``(n):` `        ``d1 ``+``=` `mat[i][i]``        ``d2 ``+``=` `mat[i][n ``-` `i ``-` `1``]` `    ``# Return the answer``    ``return` `d1 ``*` `d2`  `# Driven code``if` `__name__ ``=``=` `'__main__'``:``    ``mat ``=` `[[``5``, ``8``, ``1``],``        ``[``5``, ``10``, ``3``],``        ``[``-``6``, ``17``, ``-``9``]]` `    ``n ``=` `len``(mat)` `    ``# Function call``    ``print``(product(mat, n))``    ` `# This code is contributed by mohit kumar 29   `

## C#

 `// C# program to find the product``// of the sum of diagonals.``using` `System;` `class` `GFG{` `// Function to find the product``// of the sum of diagonals.``static` `long` `product(``int` `[,]mat, ``int` `n)``{``    ``// Initialize sums of diagonals``    ``long` `d1 = 0, d2 = 0;` `    ``for` `(``int` `i = 0; i < n; i++)``    ``{``        ``d1 += mat[i, i];``        ``d2 += mat[i, n - i - 1];``    ``}``    ` `    ``// Return the answer``    ``return` `1L * d1 * d2;``}` `// Driven code``public` `static` `void` `Main(String[] args)``{``    ``int` `[,]mat = {{ 5, 8, 1},``                    ``{ 5, 10, 3},``                    ``{ -6, 17, -9}};``                                ` `    ``int` `n = mat.GetLength(0);``    ` `    ``// Function call``    ``Console.Write(product(mat, n));``}``}` `// This code is contributed by Princi Singh`

## Javascript

 ``
Output:
`30`

Time complexity: O(N)

Attention reader! Don’t stop learning now. Participate in the Scholorship Test for First-Step-to-DSA Course for Class 9 to 12 students.

My Personal Notes arrow_drop_up