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

• Last Updated : 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++

 `// C++ program to check whether count of` `// distinct characters in a string` `// is Prime or not` `#include ` `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;` `}`

## Java

 `// 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 m = ``new` `HashSet();` `    `  `        ``// 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`

## Python3

 `# 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`

## C#

 `// 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`

## Javascript

 ``

Output

`Yes`

Time Complexity: O((len(str))1/2)

Auxiliary Space: O(len(str))

#### Method 2: Using Counter function:

1. 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 approach` `from` `collections ``import` `Counter` `from` `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 prime` `def` `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 Code` `if` `__name__ ``=``=` `"__main__"``:`   `        ``# Given string S` `    ``S ``=` `"geeksforgeeks"`   `    ``print``(countDis(S))`   `# This code is contributed by vikkycirus`

Output

`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:

` `

My Personal Notes arrow_drop_up
Recommended Articles
Page :