Maximum Primes whose sum is equal to given N

• Last Updated : 29 Apr, 2021

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 :
Explanation : 2 and 3 are two prime numbers whose sum is 5.
Input : N = 6
Output :
Explanation : 2, 2, 2 are three prime numbers whose sum is 6.

For the maximum number of primes whose sum is equal to given n, prime numbers must be as small as possible. So, 2 is the smallest possible prime number and is an even number. The 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 in the sum of n).

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

Below is the implementation of the above approach:

C++

 // C++ program for above approach #include using namespace std; // Function to find max count of primesint 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 Codeint main(){    int n = 17;     cout << maxPrimes(n);     return 0;}

Java

 // Java program for above approachclass GFG{ // Function to find max count of primesstatic 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 Codepublic static void main(String[] args){    int n = 17;     System.out.println(maxPrimes(n));}} // This code is contributed// by Code_Mech

Python3

 # Python3 program for above approach # Function to find max count of primesdef 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 coden = 17print(maxPrmimes(n)) # This code is contributed# by Shrikant13

C#

 // C# program for above approachusing System; class GFG{ // Function to find max count of primesstatic 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 Codepublic static void Main(){    int n = 17;     Console.WriteLine(maxPrimes(n));}} // This code is contributed// by Akanksha Rai



Javascript


Output:
8

My Personal Notes arrow_drop_up