Given a matrix mat[][], the task is to check whether 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 NOInput: 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 whether the sum of the matrix is prime or not. If yes then the output is YES otherwise the output is NO.
Below is the implementation of the above approach:
// 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;
}
// 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
# 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
// 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
<script>
// Javascript implementation to check
// if the sum of matrix
// is prime or not
let N = 4, M = 5;
// Function to check
// whether a number
// is prime or not
function isPrime(n)
{
// Corner case
if (n <= 1)
return false;
// Check from 2 to n-1
for (let 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
function takeSum(a)
{
let s = 0;
for (let i = 0; i < N; i++)
for (let j = 0; j < M; j++)
s += a[i][j];
return s;
}
let a = [ [ 1, 2, 3, 4, 2 ],
[ 0, 1, 2, 3, 34 ],
[ 0, 34, 21, 12, 12 ],
[ 1, 2, 3, 6, 6 ] ];
let sum = takeSum(a);
if (isPrime(sum))
document.write("YES");
else
document.write("NO");
</script>
Output:
YES
Time Complexity: O(N*M)
Auxiliary Space: O(1)