# Program to check idempotent matrix

• Difficulty Level : Easy
• Last Updated : 14 Jun, 2022

Given a N * N matrix and the task is to check matrix is idempotent matrix or not.
Idempotent matrix: A matrix is said to be idempotent matrix if matrix multiplied by itself return the same matrix. The matrix M is said to be idempotent matrix if and only if M * M = M. In idempotent matrix M is a square matrix.

Examples:

```Input : mat[][] = {{3, -6},
{1, -2}};
Output : Idempotent Matrix

Input : mat[N][N] = {{2, -2, -4},
{-1, 3, 4},
{1, -2, -3}}
Output : Idempotent Matrix.```

## C++

 `// Program to check given matrix``// is idempotent matrix or not.``#include``#define N 3``using` `namespace` `std;` `// Function for matrix multiplication.``void` `multiply(``int` `mat[][N], ``int` `res[][N])``{``    ``for` `(``int` `i = 0; i < N; i++)``    ``{``        ``for` `(``int` `j = 0; j < N; j++)``        ``{``            ``res[i][j] = 0;``            ``for` `(``int` `k = 0; k < N; k++)``                ``res[i][j] += mat[i][k] * mat[k][j];``        ``}``    ``}``}` `// Function to check idempotent``// property of matrix.``bool` `checkIdempotent(``int` `mat[][N])``{  ``    ``// Calculate multiplication of matrix``    ``// with itself and store it into res.``    ``int` `res[N][N];``    ``multiply(mat, res);` `    ``for` `(``int` `i = 0; i < N; i++)   ``        ``for` `(``int` `j = 0; j < N; j++)       ``            ``if` `(mat[i][j] != res[i][j])``                ``return` `false``;``    ``return` `true``;``}` `// Driver function.``int` `main()``{``    ``int` `mat[N][N] = {{2, -2, -4},``                    ``{-1, 3, 4},``                    ``{1, -2, -3}};``    ` `    ``// checkIdempotent function call.``    ``if` `(checkIdempotent(mat))``        ``cout << ``"Idempotent Matrix"``;``    ``else``        ``cout << ``"Not Idempotent Matrix."``;``    ``return` `0;``}`

## Java

 `// Java program to check given matrix``// is idempotent matrix or not.``import` `java.io.*;` `class` `GFG``{``    ``static` `int` `N = ``3``;``    ` `    ``// Function for matrix multiplication.``    ``static` `void` `multiply(``int` `mat[][], ``int` `res[][])``    ``{``        ``for` `(``int` `i = ``0``; i < N; i++)``        ``{``            ``for` `(``int` `j = ``0``; j < N; j++)``            ``{``                ``res[i][j] = ``0``;``                ``for` `(``int` `k = ``0``; k < N; k++)``                    ``res[i][j] += mat[i][k] * mat[k][j];``            ``}``        ``}``    ``}``    ` `    ``// Function to check idempotent``    ``// property of matrix.``    ``static` `boolean` `checkIdempotent(``int` `mat[][])``    ``{``        ``// Calculate multiplication of matrix``        ``// with itself and store it into res.``        ``int` `res[][] = ``new` `int``[N][N];``        ``multiply(mat, res);``    ` `        ``for` `(``int` `i = ``0``; i < N; i++)``        ``{``            ``for` `(``int` `j = ``0``; j < N; j++)``            ``{``                ``if` `(mat[i][j] != res[i][j])``                    ``return` `false``;``            ``}``        ``}``        ``return` `true``;``    ``}` `    ``// Driver code.``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `mat[][] = {{``2``, -``2``, -``4``},``                       ``{-``1``, ``3``, ``4``},``                       ``{``1``, -``2``, -``3``}};``    ` `        ``// checkIdempotent function call.``        ``if` `(checkIdempotent(mat))``            ``System.out.println( ``"Idempotent Matrix"``);``        ``else``            ``System.out.println(``"Not Idempotent Matrix."``);``        ` `    ``}``}` `// This code is contributed by vt_m.`

## Python 3

 `# Python Program to check given matrix``# is idempotent matrix or not.``import` `math` `# Function for matrix multiplication.``def` `multiply(mat, res):` `    ``N``=` `len``(mat)``    ``for` `i ``in` `range``(``0``,N):``    ` `        ``for` `j ``in` `range``(``0``,N):``        ` `            ``res[i][j] ``=` `0``            ``for` `k ``in` `range``(``0``,N):``                ``res[i][j] ``+``=` `mat[i][k] ``*` `mat[k][j]` `# Function to check idempotent``# property of matrix.``def` `checkIdempotent(mat):` `    ``N``=` `len``(mat)``    ``# Calculate multiplication of matrix``    ``# with itself and store it into res.``    ``res ``=``[[``0``]``*``N ``for` `i ``in` `range``(``0``,N)]``    ``multiply(mat, res)` `    ``for` `i ``in` `range``(``0``,N):``        ``for` `j ``in` `range``(``0``,N):    ``            ``if` `(mat[i][j] !``=` `res[i][j]):``                ``return` `False``    ``return` `True` `# driver Function``mat ``=` `[ [``2``, ``-``2``, ``-``4``],``        ``[``-``1``, ``3``, ``4``],``        ``[``1``, ``-``2``, ``-``3``] ]``    ` `# checkIdempotent function call.``if` `(checkIdempotent(mat)):``    ``print``(``"Idempotent Matrix"``)``else``:``    ``print``(``"Not Idempotent Matrix."``)` `# This code is contributed by Gitanjali.`

## C#

 `// C# program to check given matrix``// is idempotent matrix or not.``using` `System;` `class` `GFG``{``    ``static` `int` `N = 3;``    ` `    ``// Function for matrix multiplication.``    ``static` `void` `multiply(``int` `[,]mat, ``int` `[,]res)``    ``{``        ``for` `(``int` `i = 0; i < N; i++)``        ``{``            ``for` `(``int` `j = 0; j < N; j++)``            ``{``                ``res[i,j] = 0;``                ``for` `(``int` `k = 0; k < N; k++)``                    ``res[i,j] += mat[i,k] * mat[k,j];``            ``}``        ``}``    ``}``    ` `    ``// Function to check idempotent``    ``// property of matrix.``    ``static` `bool` `checkIdempotent(``int` `[,]mat)``    ``{``        ``// Calculate multiplication of matrix``        ``// with itself and store it into res.``        ``int` `[,]res = ``new` `int``[N,N];``        ``multiply(mat, res);``    ` `        ``for` `(``int` `i = 0; i < N; i++)``        ``{``            ``for` `(``int` `j = 0; j < N; j++)``            ``{``                ``if` `(mat[i,j] != res[i,j])``                    ``return` `false``;``            ``}``        ``}``        ``return` `true``;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `[,]mat = {{2, -2, 4},``                    ``{-1, 3, 4},``                    ``{1, -2, -3}};``    ` `        ``// checkIdempotent function call.``        ``if` `(checkIdempotent(mat))``            ``Console.WriteLine( ``"Idempotent Matrix"``);``        ``else``            ``Console.WriteLine(``"Not Idempotent Matrix."``);``        ` `    ``}``}` `// This code is contributed by vt_m.`

## Javascript

 ``

Output

`Idempotent Matrix`

Time Complexity: O(n3)
Auxiliary Space: O(n2)

My Personal Notes arrow_drop_up