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

17 Nov, 2021
Time Complexity: O((len(str))1/2)
Auxiliary Space: O(len(str))Time Complexity: O((l
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++
Java
Python3
C#
Javascript
// 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 notbool 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 stringint 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 codeint main(){    string str = "geeksforgeeks";     if (isPrime(countDistinct(str)))        cout << "Yes" << endl;    else        cout << "No" << endl;     return 0;}
// Java program to check whether count of// distinct characters in a string// is Prime or notimport 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
# Python 3 program to check whether# count of distinct characters in a# string is Prime or not # from math library import# sqrt methodfrom math import sqrt # Find whether a number# is prime or notdef 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 stringdef 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
// C# program to check whether count of// distinct characters in a string// is Prime or notusing 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
<script> // Javascript program to check whether count of// distinct characters in a string// is Prime or not // Find whether a number is prime or notfunction isPrime(n){    var 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 stringfunction countDistinct(s){    // create a map to store the    // frequency of characters    var m = new Map();     // traverse the string    for (var i = 0; i < s.length; i++) {        // increase the frequency of character        if(m.has(s[i]))        {            m.set(s[i], m[s[i]]+1);        }        else        {            m.set(s[i],1);        }    }     return m.size;} // Driver codevar str = "geeksforgeeks";if (isPrime(countDistinct(str)))    document.write( "Yes" );else    document.write( "No" ); // This code is contributed by rutvik_56.</script>
Yes
Time Complexity: O((len(str))1/2)
Auxiliary Space: O(len(str))
Count the frequencies of all elements using Counter function and number of keys of this frequency dictionary gives the count and check whether it is prime or not.
Count the frequencies of all elements using Counter function and number of keys of this frequency dictionary gives the count and check whether it is prime or not.
Below is the implementation:
Python3
# Python program for the above approachfrom collections import Counterfrom math import sqrt as sqrt  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 # Function to count the number of distinct# characters present in the string# str and check whether it is primedef countDis(str):     # Stores all frequencies    freq = Counter(str)     # Return the size of the freq dictionary    if(isPrime(len(freq))):        return True    else:        return False  # Driver Codeif __name__ == "__main__":         # Given string S    S = "geeksforgeeks"     print(countDis(S)) # This code is contributed by vikkycirus
True
Time Complexity: O((len(str))1/2)
Auxiliary Space: O(len(str))Time Complexity: O((len(str))1/2)
Auxiliary Space: O(len(str))Output:
 
ankthon
ihritik
29AjayKumar
subhammahato348
vikkycirus
rutvik_56
arorakashish0911
rohitsingh07052
frequency-counting
Prime Number
C++ Programs
Strings
Strings
Prime Number
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C++ Program for QuickSort
cin in C++
delete keyword in C++
CSV file management using C++
Shallow Copy and Deep Copy in C++
Write a program to reverse an array or string
Reverse a string in Java
Longest Common Subsequence | DP-4
Write a program to print all permutations of a given string
C++ Data Types