Given an array arr of size N. The task is to find the prime numbers in the first half (up to index N/2) and the second half (all the remaining elements) of an array.
Examples:
Input : arr[] = {2, 5, 10, 15, 17, 21, 23 }
Output :2 5 and 17 23
Prime numbers in the first half of an array are 2, 5 and in the second half are 17, 23
Input : arr[] = {31, 35, 40, 43}
Output :31 and 43
Approach:
First Traverse the array up to N/2 and check all the elements whether they are prime or not and print the prime numbers. Then Traverse the array from N/2th element till N and find whether elements are prime or not and print all those elements which are prime.
Below is the implementation of the above approach:
// C++ program to print the prime numbers in the // first half and second half of an array #include <bits/stdc++.h> using namespace std;
// Function to check if a number is prime or not bool prime( int n)
{ for ( int i = 2; i * i <= n; i++)
if (n % i == 0)
return false ;
return true ;
} // Function to find whether elements are prime or not void prime_range( int start, int end, int * a)
{ // Traverse in the given range
for ( int i = start; i < end; i++) {
// Check if a number is prime or not
if (prime(a[i]))
cout << a[i] << " " ;
}
} // Function to print the prime numbers in the // first half and second half of an array void Print( int arr[], int n)
{ cout << "Prime numbers in the first half are " ;
prime_range(0, n / 2, arr);
cout << endl;
cout << "Prime numbers in the second half are " ;
prime_range(n / 2, n, arr);
cout << endl;
} // Driver Code int main()
{ int arr[] = { 2, 5, 10, 15, 17, 21, 23 };
int n = sizeof (arr) / sizeof (arr[0]);
// Function call
Print(arr, n);
return 0;
} |
// Java program to print the prime numbers in the // first half and second half of an array import java.util.*;
class GFG
{ // Function to check if // a number is prime or not static boolean prime( int n)
{ for ( int i = 2 ; i * i <= n; i++)
if (n % i == 0 )
return false ;
return true ;
} // Function to find whether elements // are prime or not static void prime_range( int start,
int end, int [] a)
{ // Traverse in the given range
for ( int i = start; i < end; i++)
{
// Check if a number is prime or not
if (prime(a[i]))
System.out.print(a[i] + " " );
}
} // Function to print the prime numbers in the // first half and second half of an array static void Print( int arr[], int n)
{ System.out.print( "Prime numbers in the first half are " );
prime_range( 0 , n / 2 , arr);
System.out.println();
System.out.print( "Prime numbers in the second half are " );
prime_range(n / 2 , n, arr);
System.out.println();
} // Driver Code public static void main(String[] args)
{ int arr[] = { 2 , 5 , 10 , 15 , 17 , 21 , 23 };
int n = arr.length;
// Function call
Print(arr, n);
} } // This code is contributed by Princi Singh |
# Python3 program to print the # prime numbers in the first half # and second half of an array # Function to check if # a number is prime or not def prime(n):
for i in range ( 2 , n):
if i * i > n:
break
if (n % i = = 0 ):
return False ;
return True
# Function to find whether # elements are prime or not def prime_range(start, end, a):
# Traverse in the given range
for i in range (start, end):
# Check if a number is prime or not
if (prime(a[i])):
print (a[i], end = " " )
# Function to print the # prime numbers in the first half # and second half of an array def Print (arr, n):
print ( "Prime numbers in the" ,
"first half are " , end = "")
prime_range( 0 , n / / 2 , arr)
print ()
print ( "Prime numbers in the" ,
"second half are " , end = "")
prime_range(n / / 2 , n, arr)
print ()
# Driver Code arr = [ 2 , 5 , 10 , 15 , 17 , 21 , 23 ]
n = len (arr)
# Function call Print (arr, n)
# This code is contributed # by Mohit Kumar |
// C# program to print the prime numbers in the // first half and second half of an array using System;
class GFG
{ // Function to check if // a number is prime or not static Boolean prime( int n)
{ for ( int i = 2; i * i <= n; i++)
if (n % i == 0)
return false ;
return true ;
} // Function to find whether elements // are prime or not static void prime_range( int start,
int end, int [] a)
{ // Traverse in the given range
for ( int i = start; i < end; i++)
{
// Check if a number is prime or not
if (prime(a[i]))
Console.Write(a[i] + " " );
}
} // Function to print the prime numbers in the // first half and second half of an array static void Print( int []arr, int n)
{ Console.Write( "Prime numbers in the first half are " );
prime_range(0, n / 2, arr);
Console.WriteLine();
Console.Write( "Prime numbers in the second half are " );
prime_range(n / 2, n, arr);
Console.WriteLine();
} // Driver Code public static void Main(String[] args)
{ int []arr = { 2, 5, 10, 15, 17, 21, 23 };
int n = arr.Length;
// Function call
Print(arr, n);
} } // This code is contributed by 29AjayKumar |
<script> // Javascript program to print the prime numbers in the // first half and second half of an array // Function to check if a number is prime or not function prime(n)
{ for (let i = 2; i * i <= n; i++)
if (n % i == 0)
return false ;
return true ;
} // Function to find whether elements are prime or not function prime_range(start, end, a)
{ // Traverse in the given range
for (let i = start; i < end; i++) {
// Check if a number is prime or not
if (prime(a[i]))
document.write(a[i] + " " );
}
} // Function to print the prime numbers in the // first half and second half of an array function Print(arr, n)
{ document.write( "Prime numbers in the first half are " );
prime_range(0, parseInt(n / 2), arr);
document.write( "<br>" );
document.write( "Prime numbers in the second half are " );
prime_range(parseInt(n / 2), n, arr);
document.write( "<br>" );
} // Driver Code let arr = [ 2, 5, 10, 15, 17, 21, 23 ]; let n = arr.length; // Function call Print(arr, n); // This code is contributed by rishavmahato348. </script> |
Prime numbers in the first half are 2 5 Prime numbers in the second half are 17 23
Time Complexity: O(n * sqrt(n)), as we are using a loop for traversing n times and each time for checking if a number is prime or not we are using a loop to traverse sqrt(n) times which will cost O(sqrt(n)).
Auxiliary Space: O(1), as we are not using any extra space.