Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Check if the string satisfies the given condition

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Given a string str, the task is to check whether the count of vowels in the given string is prime or not. If it’s prime then print YES else print NO.

Examples: 

Input: str = “geeksforgeeks” 
Output: YES 
Count of vowels is 5 (e, e, o, e and e) which is prime.

Input: str = “aeioua” 
Output: NO 

Approach: Initialize a variable count = 0 and traverse the string character by character, if the current character is a vowel, then update count = count + 1. In the end, if count is prime then print YES else print NO.

Below is the implementation of the above approach: 

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
 
// Function that returns true if n is prime
bool prime(int n)
{
    // Corner cases
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
 
    // This is checked so that we can skip
    // middle five numbers in below loop
    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 that returns true if c is a vowel
bool isVowel(char c)
{
    c = tolower(c);
    if (c == 'a'
        || c == 'e'
        || c == 'i'
        || c == 'o'
        || c == 'u')
        return true;
    return false;
}
 
// Function that returns true if the count
// of vowels in word is prime
bool isValidString(string word)
{
    int cnt = 0;
 
    for (int i = 0; i < word.length(); i++) {
        if (isVowel(word[i]))
            cnt++;
    }
 
    // If count of vowels is prime
    if (prime(cnt))
        return true;
    else
        return false;
}
 
// Driver code
int main()
{
    string s = "geeksforgeeks";
    if (isValidString(s))
        cout << "YES";
    else
        cout << "NO";
    return 0;
}

Java




// Java implementation of the approach
import java.util.*;
 
class GFG
{
 
    // Function that returns true if n is prime
    static boolean prime(int n)
    {
        // Corner cases
        if (n <= 1)
        {
            return false;
        }
        if (n <= 3)
        {
            return true;
        }
 
        // This is checked so that we can skip
        // middle five numbers in below loop
        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 that returns true if c is a vowel
    static boolean isVowel(char c)
    {
        c = Character.toLowerCase(c);
        if (c == 'a' || c == 'e' ||
            c == 'i' || c == 'o' || c == 'u')
        {
            return true;
        }
        return false;
    }
 
    // Function that returns true if the count
    // of vowels in word is prime
    static boolean isValidString(String word)
    {
        int cnt = 0;
 
        for (int i = 0; i < word.length(); i++)
        {
            if (isVowel(word.charAt(i)))
            {
                cnt++;
            }
        }
 
        // If count of vowels is prime
        if (prime(cnt))
        {
            return true;
        } else
        {
            return false;
        }
    }
 
    // Driver code
    public static void main(String args[])
    {
        String s = "geeksforgeeks";
        if (isValidString(s))
            System.out.println("YES");
        else
            System.out.println("NO");
    }
}
 
// This code is contributed by Princi Singh

Python3




# Python3 implementation of the approach
  
# Function that returns true if n is prime
def prime(n):
 
    # Corner cases
    if (n <= 1):
        return False
    if (n <= 3):
        return True
  
    # This is checked so that we can skip
    # middle five numbers in below loop
    if (n % 2 == 0 or n % 3 == 0):
        return False
     
    i = 5
    while i * i <= n:
        if (n % i == 0 or n % (i + 2) == 0):
            return False
             
        i += 6
 
    return True
     
# Function that returns true
# if c is a vowel
def isVowel(c):
 
    c = c.lower()
    if (c == 'a' or c == 'e' or
        c == 'i' or c == 'o' or
        c == 'u'):
        return True
         
    return False
 
# Function that returns true if the
# count of vowels in word is prime
def isValidString(word):
     
    cnt = 0;
     
    for i in range(len(word)):
        if (isVowel(word[i])):
            cnt += 1
  
    # If count of vowels is prime
    if (prime(cnt)):
        return True
    else:
        return False
 
# Driver code
if __name__=="__main__":
     
    s = "geeksforgeeks"
     
    if (isValidString(s)):
        print("YES")
    else:
        print("NO")
 
# This code is contributed by rutvik_56

C#




// C# implementation of the approach
using System;
     
class GFG
{
 
    // Function that returns true if n is prime
    static Boolean prime(int n)
    {
        // Corner cases
        if (n <= 1)
        {
            return false;
        }
        if (n <= 3)
        {
            return true;
        }
 
        // This is checked so that we can skip
        // middle five numbers in below loop
        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 that returns true if c is a vowel
    static Boolean isVowel(char c)
    {
        c = char.ToLower(c);
        if (c == 'a' || c == 'e' ||
            c == 'i' || c == 'o' || c == 'u')
        {
            return true;
        }
        return false;
    }
 
    // Function that returns true if the count
    // of vowels in word is prime
    static Boolean isValidString(String word)
    {
        int cnt = 0;
 
        for (int i = 0; i < word.Length; i++)
        {
            if (isVowel(word[i]))
            {
                cnt++;
            }
        }
 
        // If count of vowels is prime
        if (prime(cnt))
        {
            return true;
        } else
        {
            return false;
        }
    }
 
    // Driver code
    public static void Main(String []args)
    {
        String s = "geeksforgeeks";
        if (isValidString(s))
            Console.WriteLine("YES");
        else
            Console.WriteLine("NO");
    }
}
 
// This code has been contributed by 29AjayKumar

Javascript




<script>
 
// JavaScript implementation of the approach
 
// Function that returns true if n is prime
function prime(n)
{
    // Corner cases
        if (n <= 1)
        {
            return false;
        }
        if (n <= 3)
        {
            return true;
        }
  
        // This is checked so that we can skip
        // middle five numbers in below loop
        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 that returns true if c is a vowel
function isVowel(c)
{
    c = c.toLowerCase();
        if (c == 'a' || c == 'e' ||
            c == 'i' || c == 'o' || c == 'u')
        {
            return true;
        }
        return false;
}
 
 // Function that returns true if the count
    // of vowels in word is prime
function isValidString(word)
{
    let cnt = 0;
  
        for (let i = 0; i < word.length; i++)
        {
            if (isVowel(word[i]))
            {
                cnt++;
            }
        }
  
        // If count of vowels is prime
        if (prime(cnt))
        {
            return true;
        } else
        {
            return false;
        }
}
 
// Driver code
let s = "geeksforgeeks";
if (isValidString(s))
    document.write("YES<br>");
else
    document.write("NO<br>");
 
 
// This code is contributed by rag2127
 
</script>

Output

YES

Time Complexity: O(N), where N is the length of the given string.
Auxiliary Space: O(1)


My Personal Notes arrow_drop_up
Last Updated : 12 Oct, 2022
Like Article
Save Article
Similar Reads
Related Tutorials