# Row-wise common elements in two diagonals of a square matrix

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

Given a square matrix, find out count of numbers that are same in same row and same in both primary and secondary diagonals.
Examples :

```Input : 1 2 1
4 5 2
0 5 1
Output : 2
Primary diagonal is 1 5 1
Secondary diagonal is 1 5 0
Two elements (1 and 5) match
in two diagonals and same.

Input : 1 0 0
0 1 0
0 0 1
Output : 1
Primary diagonal is 1 1 1
Secondary diagonal is 0 1 0
Only one element is same.```

We can achieve this in O(n) time, O(1) space and only one traversal. We can find current element in i-th row of primary diagonal as mat[i][i] and i-th element of secondary diagonal as mat[i][n-i-1].

## C++

 `// CPP program to find common elements in``// two diagonals.``#include ``#define MAX 100``using` `namespace` `std;` `// Returns count of row wise same``// elements in two diagonals of``// mat[n][n]``int` `countCommon(``int` `mat[][MAX], ``int` `n)``{``    ``int` `res = 0;``    ``for` `(``int` `i=0;i

## Java

 `// Java program to find common``// elements in two diagonals.``import` `java.io.*;` `class` `GFG``{``    ``int` `MAX = ``100``;``    ` `    ``// Returns count of row wise same elements``    ``// in two diagonals of mat[n][n]``    ``static` `int` `countCommon(``int` `mat[][], ``int` `n)``    ``{``        ``int` `res = ``0``;``        ``for` `(``int` `i = ``0``; i < n; i++)``            ``if` `(mat[i][i] == mat[i][n - i - ``1``])``                ``res++;``        ``return` `res;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String args[])``throws` `IOException``    ``{``        ``int` `mat[][] = {{``1``, ``2``, ``3``},``                       ``{``4``, ``5``, ``6``},``                       ``{``7``, ``8``, ``9``}};``        ``System.out.println(countCommon(mat, ``3``));``    ``}``}` `// This code is contributed by Anshika Goyal.`

## Python3

 `# Python3 program to find common``# elements in two diagonals.` `Max` `=` `100` `# Returns count of row wise same``# elements in two diagonals of``# mat[n][n]``def` `countCommon(mat, n):``    ``res ``=` `0``    ` `    ``for` `i ``in` `range``(n):``        ` `        ``if` `mat[i][i] ``=``=` `mat[i][n``-``i``-``1``] :``            ``res ``=` `res ``+` `1``    ``return` `res    ` `# Driver Code``mat ``=` `[[``1``, ``2``, ``3``],``       ``[``4``, ``5``, ``6``],``       ``[``7``, ``8``, ``9``]]` `print``(countCommon(mat, ``3``))` `# This code is contributed by Anant Agarwal.`

## C#

 `// C# program to find common``// elements in two diagonals.``using` `System;` `class` `GFG {``    ` `    ``// Returns count of row wise same``    ``// elements in two diagonals of``    ``// mat[n][n]``    ``static` `int` `countCommon(``int` `[,]mat, ``int` `n)``    ``{``        ``int` `res = 0;``        ` `        ``for` `(``int` `i = 0; i < n; i++)``            ``if` `(mat[i,i] == mat[i,n - i - 1])``                ``res++;``                ` `        ``return` `res;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``int` `[,]mat = {{1, 2, 3},``                      ``{4, 5, 6},``                      ``{7, 8, 9}};``        ``Console.WriteLine(countCommon(mat, 3));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output :

`  1  `

This article is contributed by Himanshu Ranjan. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.