Check if Matrix sum is prime or not

Given a matrix mat[][], the task is to check that the sum of the elements of the matrix is prime or not.

Examples:

Input: mat[][] = {{1, 2}, {2, 1}}
Output: NO
Explanation:
Sum of Matrix = 1 + 2 + 2 + 1 = 6
Since 6 is not prime. Therefore, output is NO

Input: mat[][] = {{1, 2}, {2, 2}}
Output: YES
Explanation:
Sum of matrix = 1 + 2 + 2 + 2 = 7
Since 7 is prime. Therefore, output is YES

Approach: The idea is to find the sum of the matrix using two nested loops and then finally check that the sum of the matrix is a prime or not. If yes then the output is YES otherwise the output is NO.



Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation to check
// if the sum of matrix 
// is prime or not
  
#include <bits/stdc++.h>
using namespace std;
  
const int N = 4, M = 5;
  
// Function to check 
// whether a number
// is prime or not
bool isPrime(int n)
{
    // Corner case
    if (n <= 1)
        return false;
  
    // Check from 2 to n-1
    for (int i = 2; i <= sqrt(n); i++)
        if (n % i == 0)
            return false;
  
    return true;
}
  
// Function for to find the sum
// of the given matrix
int takeSum(int a[N][M])
{
    int s = 0;
    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
            s += a[i][j];
  
    return s;
}
  
// Driver Code
int main()
{
  
    int a[N][M] = { { 1, 2, 3, 4, 2 },
                    { 0, 1, 2, 3, 34 },
                    { 0, 34, 21, 12, 12 },
                    { 1, 2, 3, 6, 6 } };
    int sum = takeSum(a);
  
    if (isPrime(sum))
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation to check if 
// the sum of matrix is prime or not
class GFG{
  
static int N = 4, M = 5;
  
// Function to check whether
// a number is prime or not
static boolean isPrime(int n)
{
      
    // Corner case
    if (n <= 1)
        return false;
  
    // Check from 2 to n-1
    for(int i = 2; i <= Math.sqrt(n); i++)
       if (n % i == 0)
           return false;
  
    return true;
}
  
// Function for to find the sum
// of the given matrix
static int takeSum(int a[][])
{
    int s = 0;
      
    for(int i = 0; i < N; i++)
       for(int j = 0; j < M; j++)
          s += a[i][j];
  
    return s;
}
  
// Driver Code
public static void main(String[] args)
{
    int a[][] = { { 1, 2, 3, 4, 2 },
                  { 0, 1, 2, 3, 34 },
                  { 0, 34, 21, 12, 12 },
                  { 1, 2, 3, 6, 6 } };
                    
    int sum = takeSum(a);
  
    if (isPrime(sum))
        System.out.print("YES" + "\n");
    else
        System.out.print("NO" + "\n");
}
}
  
// This code is contributed by PrinciRaj1992

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation to check if 
# the sum of matrix is prime or not
import math
  
# Function to check whether a number
# is prime or not
def isPrime(n):
  
    # Corner case
    if (n <= 1):
        return False;
  
    # Check from 2 to n-1
    for i in range(2, (int)(math.sqrt(n)) + 1):
        if (n % i == 0):
            return False;
  
    return True;
  
# Function for to find the sum
# of the given matrix
def takeSum(a):
  
    s = 0
    for i in range(0, 4):
        for j in range(0, 5):
            s += a[i][j]
  
    return s;
  
# Driver Code
a = [ [ 1, 2, 3, 4, 2 ],
      [ 0, 1, 2, 3, 34 ],
      [ 0, 34, 21, 12, 12 ],
      [ 1, 2, 3, 6, 6 ] ];
sum = takeSum(a);
  
if (isPrime(sum)):
    print("YES")
else:
    print("NO")
      
# This code is contributed by grand_master

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation to check if 
// the sum of matrix is prime or not
using System;
class GFG{
  
static int N = 4, M = 5;
  
// Function to check whether
// a number is prime or not
static Boolean isPrime(int n)
{
      
    // Corner case
    if (n <= 1)
        return false;
  
    // Check from 2 to n-1
    for(int i = 2; i <= Math.Sqrt(n); i++)
    if (n % i == 0)
        return false;
  
    return true;
}
  
// Function for to find the sum
// of the given matrix
static int takeSum(int [][]a)
{
    int s = 0;
      
    for(int i = 0; i < N; i++)
    for(int j = 0; j < M; j++)
        s += a[i][j];
  
    return s;
}
  
// Driver Code
public static void Main(String[] args)
{
    int [][]a = new int[][] 
                {
                    new int[] { 1, 2, 3, 4, 2 },
                    new int[] { 0, 1, 2, 3, 34 },
                    new int[] { 0, 34, 21, 12, 12 },
                    new int[] { 1, 2, 3, 6, 6 }
                };
                  
    int sum = takeSum(a);
  
    if (isPrime(sum))
        Console.Write("YES" + "\n");
    else
        Console.Write("NO" + "\n");
}
}
  
// This code is contributed by shivanisinghss2110

chevron_right


Output:

YES

Time Complexity: O(N*M)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.