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

**Examples:**

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

Input :N = 6Output :3Explanation: 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++

`// 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;` `}` |

## Java

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

## Python3

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

## C#

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

## PHP

`<?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` `?>` |

**Output:**

8

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.