Open In App

Check if sum of count of digits of array elements is Prime or not

Given an array A[] consisting of N integers, the task is to check if the sum of numbers of digits in each array element is a prime number or not.

Examples: 



Input: A[] = {1, 11, 12}
Output: Yes
Explanation: Count of digits of A[0], A[1] and A[2] are 1, 2, 2 respectively. Therefore, total sum of count of digits = 1 + 2 + 2 = 5, which is prime.

Input: A[] = {1, 11, 123}
Output: No



 

Approach: Follow the steps below to solve the problem:

  1. Initialize a variable sum, to store the sum of the number of digits of array elements.
  2. Traverse the array and convert each array element to its equivalent string
  3. Add the length of every string to sum.
  4. Check if the value of sum after complete traversal of the array, is prime or not.
  5. Print Yes if found to be true. Otherwise, print No.

Below is the implementation of the above approach: 




// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check whether
// a number is prime or not
bool isPrime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // If given number is a
    // multiple of 2 or 3
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for (int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to check if sum
// of count of digits of all
// array elements is prime or not
void CheckSumPrime(int A[], int N)
{
    // Initialize sum with 0
    int sum = 0;
 
    // Traverse over the array
    for (int i = 0; i < N; i++) {
 
        // Convert array element to string
        string s = to_string(A[i]);
 
        // Add the count of
        // digits to sum
        sum += s.length();
    }
 
    // Print the result
    if (isPrime(sum)) {
 
        cout << "Yes" << endl;
    }
    else {
 
        cout << "No" << endl;
    }
}
 
// Drive Code
int main()
{
 
    int A[] = { 1, 11, 12 };
 
    int N = sizeof(A) / sizeof(A[0]);
 
    // Function call
    CheckSumPrime(A, N);
 
    return 0;
}




// Java program for the above approach
import java.io.*;
import java.util.*;
 
class GFG{
 
// Function to check whether
// a number is prime or not
static boolean isPrime(int n)
{
     
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // If given number is a
    // multiple of 2 or 3
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for(int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to check if sum
// of count of digits of all
// array elements is prime or not
static void CheckSumPrime(int[] A, int N)
{
     
    // Initialize sum with 0
    int sum = 0;
 
    // Traverse over the array
    for(int i = 0; i < N; i++)
    {
         
        // Convert array element to string
        String s = Integer.toString(A[i]);
 
        // Add the count of
        // digits to sum
        sum += s.length();
    }
 
    // Print the result
    if (isPrime(sum) == true)
    {
        System.out.println("Yes");
    }
    else
    {
        System.out.println("No");
    }
}
 
// Drive Code
public static void main(String[] args)
{
    int[] A = { 1, 11, 12 };
 
    int N = A.length;
 
    // Function call
    CheckSumPrime(A, N);
}
}
 
// This code is contributed by akhilsaini




# Python3 program for the above approach
import math
 
# Function to check whether
# a number is prime or not
def isPrime(n):
     
    # Corner cases
    if (n <= 1):
        return False
    if (n <= 3):
        return True
 
    # If given number is a
    # multiple of 2 or 3
    if (n % 2 == 0 or n % 3 == 0):
        return False
 
    for i in range(5, int(math.sqrt(n) + 1), 6):
        if (n % i == 0 or n % (i + 2) == 0):
            return False
 
    return True
 
# Function to check if sum
# of count of digits of all
# array elements is prime or not
def CheckSumPrime(A, N):
     
    # Initialize sum with 0
    sum = 0
 
    # Traverse over the array
    for i in range(0, N):
         
        # Convert array element to string
        s = str(A[i])
 
        # Add the count of
        # digits to sum
        sum += len(s)
 
    # Print the result
    if (isPrime(sum) == True):
        print("Yes")
    else:
        print("No")
 
# Drive Code
if __name__ == '__main__':
     
    A = [ 1, 11, 12 ]
 
    N = len(A)
 
    # Function call
    CheckSumPrime(A, N)
 
# This code is contributed by akhilsaini




// C# program for the above approach
using System;
 
class GFG{
 
// Function to check whether
// a number is prime or not
static bool isPrime(int n)
{
     
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // If given number is a
    // multiple of 2 or 3
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for(int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to check if sum
// of count of digits of all
// array elements is prime or not
static void CheckSumPrime(int[] A, int N)
{
     
    // Initialize sum with 0
    int sum = 0;
 
    // Traverse over the array
    for(int i = 0; i < N; i++)
    {
         
        // Convert array element to string
        String s = A[i].ToString();
 
        // Add the count of
        // digits to sum
        sum += s.Length;
    }
 
    // Print the result
    if (isPrime(sum) == true)
    {
        Console.WriteLine("Yes");
    }
    else
    {
        Console.WriteLine("No");
    }
}
 
// Drive Code
public static void Main()
{
    int[] A = { 1, 11, 12 };
 
    int N = A.Length;
 
    // Function call
    CheckSumPrime(A, N);
}
}
 
// This code is contributed by akhilsaini




<script>
 
// Javascript program for the above approach
 
// Function to check whether
// a number is prime or not
function isPrime(n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // If given number is a
    // multiple of 2 or 3
    if (n % 2 == 0 || n % 3 == 0)
        return false;
 
    for (let i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
 
    return true;
}
 
// Function to check if sum
// of count of digits of all
// array elements is prime or not
function CheckSumPrime(A, N)
{
    // Initialize sum with 0
    let sum = 0;
 
    // Traverse over the array
    for (let i = 0; i < N; i++) {
 
        // Convert array element to string
        let s = new String(A[i]);
 
        // Add the count of
        // digits to sum
        sum += s.length;
    }
 
    // Print the result
    if (isPrime(sum)) {
 
        document.write("Yes" + "<br>");
    }
    else {
 
        document.write("No" + "<br>");
    }
}
 
// Drive Code
    let A = [ 1, 11, 12 ];
 
    let N = A.length
 
    // Function call
    CheckSumPrime(A, N);
 
    // This code is contributed by gfgking
     
</script>

Output: 
Yes

 

Time Complexity: O(N3/2)
Auxiliary Space: O(1)

 


Article Tags :