Program to print characters present at prime indexes in a given string
Last Updated :
16 Nov, 2022
Given a string, our task is to print the characters present at prime index.
Examples :
Input : I love programming
Output : lv gan
Explanation :
prime index characters in a string are : lv gan
Input : Happy coding everyone
Output : apycn ro
Approach :
- Use two loops to divide the numbers upto the value of length of string.
- Increment variable result when the remainder is 0.
- If the variable result = 1, then print the corresponding character.
Below is the implementation of above approach :
C++
#include <bits/stdc++.h>
using namespace std;
bool isPrime( int n)
{
if (n <= 1) return false ;
for ( int i = 2; i < n; i++)
if (n % i == 0)
return false ;
return true ;
}
void prime_index(string input)
{
int n = input.length();
for ( int i = 2; i <= n; i++)
if (isPrime(i))
cout << input[i - 1];
}
int main()
{
string input = "GeeksforGeeks" ;
prime_index(input);
return 0;
}
|
Java
class GFG
{
static boolean isPrime( int n)
{
if (n <= 1 ) return false ;
for ( int i = 2 ; i < n; i++)
if (n % i == 0 )
return false ;
return true ;
}
static void prime_index(String input)
{
int n = input.length();
for ( int i = 2 ; i <= n; i++)
if (isPrime(i))
System.out.print
(input.charAt(i - 1 ));
}
public static void main (String[] args)
{
String input = "GeeksforGeeks" ;
prime_index(input);
}
}
|
Python3
def isPrime(n):
if n < = 1 :
return False
for i in range ( 2 , n):
if n % i = = 0 :
return False ;
return True
def prime_index ( input ):
p = list ( input )
s = ""
for i in range ( 2 , len (p) + 1 ):
if isPrime(i):
s = s + input [i - 1 ]
print (s)
input = "GeeksforGeeks"
prime_index( input )
|
C#
using System;
class GFG
{
static bool isPrime( int n)
{
if (n <= 1) return false ;
for ( int i = 2; i < n; i++)
if (n % i == 0)
return false ;
return true ;
}
static void prime_index( string input)
{
int n = input.Length;
for ( int i = 2; i <= n; i++)
if (isPrime(i))
Console.Write(input[i - 1]);
}
public static void Main ()
{
string input = "GeeksforGeeks" ;
prime_index(input);
}
}
|
PHP
<?php
function isPrime( $n )
{
if ( $n <= 1) return false;
for ( $i = 2; $i < $n ; $i ++)
if ( $n % $i == 0)
return false;
return true;
}
function prime_index( $input )
{
$n = strlen ( $input );
for ( $i = 2; $i <= $n ; $i ++)
if (isPrime( $i ))
echo $input [ $i - 1];
}
$input = "GeeksforGeeks" ;
prime_index( $input );
?>
|
Javascript
<script>
function isPrime(n)
{
if (n <= 1) return false ;
for (let i = 2; i < n; i++)
if (n % i == 0)
return false ;
return true ;
}
function prime_index(input)
{
let n = input.length;
for (let i = 2; i <= n; i++)
if (isPrime(i))
document.write(input[i - 1]);
}
let input = "GeeksforGeeks" ;
prime_index(input);
</script>
|
Time Complexity: O(n2), where n is the length of the given string.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Optimizations :
For large strings, we can use Sieve of Eratosthenes to efficiently find all prime numbers smaller than or equal to length of string.
Share your thoughts in the comments
Please Login to comment...