Check whether count of distinct characters in a string is Prime or not

Given a string of lowercase English alphabets. The task is to check if the count of distinct characters in the string is prime or not.

Examples:

Input : str = "geeksforgeeks"
Output :Yes
Explanation: The number of distinct characters in the
string is 7, and 7 is a prime number.

Input : str ="geeks"
Output : No

In this problem first we have to count the distinct characters in the string. We will use a map to store the frequency of each alphabets. The next step is to count the number of distinct characters, and check whether the number is prime or not .

If the number is prime we will print Yes, else No.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to check whether count of
// distinct characters in a string
// is Prime or not
#include <bits/stdc++.h>
using namespace std;
  
// Find whether a number is prime or not
bool isPrime(int n)
{
    int i;
  
    // 1 is not prime
    if (n == 1)
        return false;
  
    // check if there is any factor or not
    for (i = 2; i <= sqrt(n); i++) {
        if (n % i == 0)
            return false;
    }
    return true;
}
  
// Count the distinct characters in a string
int countDistinct(string s)
{
    // create a map to store the
    // frequency of characters
    unordered_map<char, int> m;
  
    // traverse the string
    for (int i = 0; i < s.length(); i++) {
        // increase the frequency of character
        m[s[i]]++;
    }
  
    return m.size();
}
  
// Driver code
int main()
{
    string str = "geeksforgeeks";
  
    if (isPrime(countDistinct(str)))
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to check whether count of
// distinct characters in a string
// is Prime or not
import java.util.*;
  
class GFG
{
    // Find whether a number is prime or not
    static boolean isPrime(int n)
    {
        int i;
      
        // 1 is not prime
        if (n == 1)
            return false;
      
        // check if there is any factor or not
        for (i = 2; i <= Math.sqrt(n); i++) 
        {
            if (n % i == 0)
                return false;
        }
        return true;
    }
      
    // Count the distinct characters in a string
    static int countDistinct(String s)
    {
        // create a map to store the
        // frequency of characters
        Set<Character> m = new HashSet<Character>();
      
        // traverse the string
        for (int i = 0; i < s.length(); i++) 
        {
              
            // increase the frequency of character
            m.add(s.charAt(i));
              
        }
          
        return m.size();
    }
      
    // Driver code
    public static void main(String []args)
    {
        String str = "geeksforgeeks";
      
        if (isPrime(countDistinct(str)))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
  
// This code is contributed by ihritik

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program to check whether
# count of distinct characters in a 
# string is Prime or not
  
# from math library import 
# sqrt method
from math import sqrt
  
# Find whether a number 
# is prime or not
def isPrime(n) :
  
    # 1 is not prime
    if n == 1 :
        return False
  
    # check if there is any 
    # factor or not
    for i in range(2, int(sqrt(n)) + 1) :
  
        if n % i == 0 :
            return False
  
    return True
  
# Count the distinct characters 
# in a string
def countDistinct(s) :
  
    # create a dictionary to store 
    # the frequency of characters
    m = {}
  
    # dictionary with keys and its
    # initialize with value 0
    m = m.fromkeys(s, 0)
  
    # traverse the string
    for i in range(len(s)) :
  
        # increase the frequency 
        # of character
        m[s[i]] += 1
  
    return len(m.keys())
  
# Driver code     
if __name__ == "__main__" :
  
    str = "geeksforgeeks"
  
    if isPrime(countDistinct(str)) :
        print("Yes")
    else :
        print("No")
          
# This code is contributed
# by ANKITRAI1

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to check whether count of 
// distinct characters in a string 
// is Prime or not 
using System;
using System.Collections.Generic;
  
class GFG 
    // Find whether a number is prime or not 
    static bool isPrime(int n) 
    
        int i; 
      
        // 1 is not prime 
        if (n == 1) 
            return false
      
        // check if there is any factor or not 
        for (i = 2; i <= Math.Sqrt(n); i++) 
        
            if (n % i == 0) 
                return false
        
        return true
    
      
    // Count the distinct characters in a string 
    static int countDistinct(String s) 
    
        // create a map to store the 
        // frequency of characters 
        HashSet<char> m = new HashSet<char>(); 
      
        // traverse the string 
        for (int i = 0; i < s.Length; i++) 
        
              
            // increase the frequency of character 
            m.Add(s[i]); 
              
        
          
        return m.Count; 
    
      
    // Driver code 
    public static void Main(String []args) 
    
        String str = "geeksforgeeks"
      
        if (isPrime(countDistinct(str))) 
            Console.WriteLine("Yes"); 
        else
            Console.WriteLine("No"); 
    
  
// This code has been contributed by 29AjayKumar

chevron_right


Output:

Yes


My Personal Notes arrow_drop_up

Second year Department of Information Technology Jadavpur University

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.