 Open in App
Not now

# Divide a number into two unequal even parts

• Difficulty Level : Basic
• Last Updated : 29 Dec, 2021

Given a positive integer N. The task is to decide whether the integer can be divided into two unequal positive even parts or not.

Examples:

Input: N = 8
Output: YES
Explanation: 8 can be divided into two different even parts i.e. 2 and 6.

Input: N = 5
Output: NO
Explanation: 5 can not be divided into two even parts in any way.

Input:  N = 4
Output: NO
Explanation: 4 can be divided into two even parts, 2 and 2. Since the numbers are equal, the output is NO.

Prerequisites: Knowledge of if-else conditional statements.

Approach: The core concept of the problem lies in the following observation:

The sum of any two even numbers is always even. Conversely any even number can be expressed as sum of two even numbers.

But here is two exceptions

• The number 2 is an exception here. It can only be expressed as the sum of two odd numbers (1 + 1).
• The number 4 can only be expressed as the sum of equal even numbers (2 + 2).

Hence, it is possible to express N as the sum of two even numbers only if N is even and not equal to 2 or 4. If N is odd, it is impossible to divide it into two even parts. Follow the steps mentioned below:

1. Check if N = 2 or N = 4.
2. If yes, then print NO.
3. Else check if N is even (i.e. a multiple of 2)
4. If yes, then print YES.
5. Else, print NO.

Below is the implementation of the above approach.

## C++

 `// C++ code to implement above approach``#include``using` `namespace` `std;`` ` `// Function to check if N can be divided ``// into two unequal even parts``bool` `evenParts(``int` `N)``{   ``    ``// Check if N is equal to 2 or 4  ``    ``if``(N == 2 || N == 4)``        ``return` `false``;`` ` `    ``// Check if N is even``    ``if``(N % 2 == 0)``        ``return` `true``;``    ``else``        ``return` `false``;``}``  ` `//Driver code``int` `main(){``   ``int` `N = 8;``     ` `   ``// Function call``   ``bool` `ans = evenParts(N);`` ` `   ``if``(ans)``       ``std::cout << ``"YES"` `<< ``'\n'``;``   ``else``       ``std::cout << ``"NO"` `<< ``'\n'``;``  ` `   ``return` `0;``}`

## Java

 `// Java code to implement above approach``import` `java.util.*;``public` `class` `GFG {`` ` `  ``// Function to check if N can be divided ``  ``// into two unequal even parts``  ``static` `boolean` `evenParts(``int` `N)``  ``{   `` ` `    ``// Check if N is equal to 2 or 4  ``    ``if``(N == ``2` `|| N == ``4``)``      ``return` `false``;`` ` `    ``// Check if N is even``    ``if``(N % ``2` `== ``0``)``      ``return` `true``;``    ``else``      ``return` `false``;``  ``}`` ` `  ``// Driver code``  ``public` `static` `void` `main(String args[])``  ``{``    ``int` `N = ``8``;`` ` `    ``// Function call``    ``boolean` `ans = evenParts(N);`` ` `    ``if``(ans)``      ``System.out.println(``"YES"``);``    ``else``      ``System.out.println(``"NO"``);`` ` `  ``}``}`` ` `// This code is contributed by Samim Hossain Mondal.`

## Python3

 `# Python code for the above approach`` ` `# Function to check if N can be divided``# into two unequal even parts``def` `evenParts(N):`` ` `    ``# Check if N is equal to 2 or 4``    ``if` `(N ``=``=` `2` `or` `N ``=``=` `4``):``        ``return` `False`` ` `    ``# Check if N is even``    ``if` `(N ``%` `2` `=``=` `0``):``        ``return` `True``    ``else``:``        ``return` `False`` ` `# Driver code``N ``=` `8`` ` `# Function call``ans ``=` `evenParts(N)``if` `(ans):``    ``print``(``"YES"``)``else``:``    ``print``(``"NO"``)`` ` `# This code is contributed by Saurabh Jaiswal.`

## C#

 `// C# code to implement above approach``using` `System;``class` `GFG {`` ` `  ``// Function to check if N can be divided ``  ``// into two unequal even parts``  ``static` `bool` `evenParts(``int` `N)``  ``{   ``     ` `    ``// Check if N is equal to 2 or 4  ``    ``if``(N == 2 || N == 4)``      ``return` `false``;`` ` `    ``// Check if N is even``    ``if``(N % 2 == 0)``      ``return` `true``;``    ``else``      ``return` `false``;``  ``}`` ` `  ``// Driver code``  ``public` `static` `void` `Main()``  ``{``    ``int` `N = 8;`` ` `    ``// Function call``    ``bool` `ans = evenParts(N);`` ` `    ``if``(ans)``      ``Console.Write(``"YES"` `+ ``'\n'``);``    ``else``      ``Console.Write(``"NO"` `+ ``'\n'``);`` ` `  ``}``}`` ` `// This code is contributed by Samim Hossain Mondal.`

## Javascript

 ``

Output

`YES`

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up