Skip to content
Related Articles

Related Articles

Find prime numbers in the first half and second half of an array
  • Last Updated : 07 Apr, 2021
GeeksforGeeks - Summer Carnival Banner

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++




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




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




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




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

Javascript




<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>
Output: 
Prime numbers in the first half are 2 5
Prime numbers in the second half are 17 23

 

Time Complexity: O(n *  sqrt(n))

Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :