Check if the given string is vowel prime
Given a string str of lowercase English alphabets, the task is to check whether the string is a vowel prime or not. A string is said to be vowel prime if all the vowels in the string appear at only prime indices.
Examples:
Input: str = “geeksforgeeks”
Output: No
str[1] = ‘e’ is a vowel but 1 is not prime.
Input: str = “bcae”
Output: Yes
All the vowels are at prime indices i.e. 2 and 3.
Approach: Use Sieve of Eratosthenes to find all the prime numbers less than N so that every index of the string can be checked for primality. Now, if there is some non-prime index such that the character at that position is a vowel then the string is not vowel prime else it is.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
bool isVowel( char c)
{
if (c == 'a' || c == 'e' || c == 'i'
|| c == 'o' || c == 'u' )
return true ;
return false ;
}
bool isVowelPrime(string str, int n)
{
bool prime[n];
memset (prime, true , sizeof (prime));
prime[0] = false ;
prime[1] = false ;
for ( int p = 2; p * p < n; p++) {
if (prime[p] == true ) {
for ( int i = p * p; i < n; i += p)
prime[i] = false ;
}
}
for ( int i = 0; i < n; i++) {
if (isVowel(str[i]) && !prime[i])
return false ;
}
return true ;
}
int main()
{
string str = "geeksforgeeks" ;
int n = str.length();
if (isVowelPrime(str, n))
cout << "Yes" ;
else
cout << "No" ;
return 0;
}
|
Java
import java.util.*;
class GFG
{
static boolean isVowel( char c)
{
if (c == 'a' || c == 'e' ||
c == 'i' || c == 'o' ||
c == 'u' )
return true ;
return false ;
}
static boolean isVowelPrime(String str, int n)
{
boolean []prime = new boolean [n];
Arrays.fill(prime, true );
prime[ 0 ] = false ;
prime[ 1 ] = false ;
for ( int p = 2 ; p * p < n; p++)
{
if (prime[p] == true )
{
for ( int i = p * p; i < n; i += p)
prime[i] = false ;
}
}
for ( int i = 0 ; i < n; i++)
{
if (isVowel(str.charAt(i)) && !prime[i])
return false ;
}
return true ;
}
public static void main(String[] args)
{
String str = "geeksforgeeks" ;
int n = str.length();
if (isVowelPrime(str, n))
System.out.println( "Yes" );
else
System.out.println( "No" );
}
}
|
Python3
def isVowel(c):
if (c = = 'a' or c = = 'e' or
c = = 'i' or c = = 'o' or
c = = 'u' ):
return True
return False
def isVowelPrime( Str , n):
prime = [ True for i in range (n)]
prime[ 0 ] = False
prime[ 1 ] = False
for p in range ( 2 , n):
if p * p > n:
break
if (prime[p] = = True ):
for i in range ( 2 * p, n, p):
prime[i] = False
for i in range (n):
if (isVowel( Str [i]) and
prime[i] = = False ):
return False
return True
Str = "geeksforgeeks" ;
n = len ( Str )
if (isVowelPrime( Str , n)):
print ( "Yes" )
else :
print ( "No" )
|
C#
using System;
class GFG
{
static Boolean isVowel( char c)
{
if (c == 'a' || c == 'e' ||
c == 'i' || c == 'o' ||
c == 'u' )
return true ;
return false ;
}
static Boolean isVowelPrime(String str, int n)
{
Boolean []prime = new Boolean[n];
for ( int i = 0; i < n; i++)
prime[i] = true ;
prime[0] = false ;
prime[1] = false ;
for ( int p = 2; p * p < n; p++)
{
if (prime[p] == true )
{
for ( int i = p * p; i < n; i += p)
prime[i] = false ;
}
}
for ( int i = 0; i < n; i++)
{
if (isVowel(str[i]) && !prime[i])
return false ;
}
return true ;
}
public static void Main(String[] args)
{
String str = "geeksforgeeks" ;
int n = str.Length;
if (isVowelPrime(str, n))
Console.WriteLine( "Yes" );
else
Console.WriteLine( "No" );
}
}
|
Javascript
<script>
function isVowel(c)
{
if (c == 'a' || c == 'e' || c == 'i'
|| c == 'o' || c == 'u' )
return true ;
return false ;
}
function isVowelPrime(str, n)
{
var prime = Array(n).fill( true );
prime[0] = false ;
prime[1] = false ;
for ( var p = 2; p * p < n; p++) {
if (prime[p] == true ) {
for ( var i = p * p; i < n; i += p)
prime[i] = false ;
}
}
for ( var i = 0; i < n; i++) {
if (isVowel(str[i]) && !prime[i])
return false ;
}
return true ;
}
var str = "geeksforgeeks" ;
var n = str.length;
if (isVowelPrime(str, n))
document.write( "Yes" );
else
document.write( "No" );
</script>
|
Time Complexity: O(n* log(log n))
Auxiliary Space: O(n), where n is the length of the given string.
Last Updated :
22 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...