Maximum Primes whose sum is equal to given N

Given a positive integer N > 1. Find the maximum count of prime numbers whose sum is equal to given N.

Examples:

Input : N = 5
Output : 2
Explanation : 2 and 3 are two prime numbers whose sum is 5.

Input : N = 6
Output :3
Explanation : 2, 2, 2 are three prime numbers whose sum is 6.

For maximum number of primes whose sum is equal to given n, prime numbers must be as small as possible. So, 2 is smallest possible prime number and is an even number. Next prime number greater than 2 is 3 which is odd. So, for any given n there are two conditions, either n will be odd or even.

  • Case 1 : n is even, In this case n/2 will be the answer (n/2 number of 2 will result into sum of n).
  • Case 1 : n is odd, In this case floor(n/2) will be the answer ((n-3)/2 number of 2 and one 3 will result into sum of n.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for above approach
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to find max count of primes
int maxPrimes(int n)
{
    // if n is even n/2 is required answer
    // if n is odd floor(n/2)  = (int)(n/2) is required answer
    return n / 2;
}
  
// Driver Code
int main()
{
    int n = 17;
  
    cout << maxPrimes(n);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program for above approach
class GFG
{
  
// Function to find max count of primes
static int maxPrimes(int n)
{
    // if n is even n/2 is required answer
    // if n is odd floor(n/2) = (int)(n/2)
    // is required answer
    return n / 2;
}
  
// Driver Code
public static void main(String[] args)
{
    int n = 17;
  
    System.out.println(maxPrimes(n));
}
}
  
// This code is contributed
// by Code_Mech

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program for above approach
  
# Function to find max count of primes
def maxPrmimes(n):
  
    # if n is even n/2 is required answer
    # if n is odd floor(n/2) = (int)(n/2) 
    # is required answer
    return n // 2
  
# Driver code
n = 17
print(maxPrmimes(n))
  
# This code is contributed
# by Shrikant13

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for above approach
using System;
  
class GFG
{
  
// Function to find max count of primes
static int maxPrimes(int n)
{
    // if n is even n/2 is required answer
    // if n is odd floor(n/2) = (int)(n/2)
    // is required answer
    return n / 2;
}
  
// Driver Code
public static void Main()
{
    int n = 17;
  
    Console.WriteLine(maxPrimes(n));
}
}
  
// This code is contributed
// by Akanksha Rai

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program for above approach
  
// Function to find max count of primes
function maxPrimes($n)
{
    // if n is even n/2 is required answer
    // if n is odd floor(n/2) = (int)(n/2) is required answer
    return (int)($n / 2);
}
  
    // Driver Code
    $n = 17;
    echo maxPrimes($n);
  
// This code is contributed by mits
?>

chevron_right


Output:

8


My Personal Notes arrow_drop_up

Discovering ways to develop a plane for soaring career goals

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.