 Open in App
Not now

# Represent N as sum of K even numbers

• Difficulty Level : Hard
• Last Updated : 02 Mar, 2022

Given two integers N and K, the task is to represent N as the sum of K even number. If it is not possible to represent the number, print -1.
Note: The representation may contain duplicate even numbers.

Examples:

Input: N = 6, K = 3
Output: 2 2 2
Explanation:
The given number 6 can be represented as 2 + 2 + 2 = 6
Input: N = 8, K = 2
Output: 2 6
Explanation:
The given number 3 can be represented as 2 + 6 = 8

Approach: To solve the problem mentioned above a simple solution is to maximize the occurrence of 2 which is the smallest even number. The necessary condition to represent N as the sum of K numbers are:

• (K – 1) * 2 must be less than N.
• N – (K – 1) * 2 must be Even.

Below is the implementation of the above approach:

## C++

 `// C++ implementation to represent` `// N as sum of K even numbers`   `#include ` `using` `namespace` `std;`   `// Function to print the representation` `void` `sumEvenNumbers(``int` `N, ``int` `K)` `{` `    ``int` `check = N - 2 * (K - 1);`   `    ``// N must be greater than equal to 2*K` `    ``// and must be even` `    ``if` `(check > 0 && check % 2 == 0) {` `        ``for` `(``int` `i = 0; i < K - 1; i++) {` `            ``cout << ``"2 "``;` `        ``}` `        ``cout << check;` `    ``}` `    ``else` `{` `        ``cout << ``"-1"``;` `    ``}` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `N = 8;` `    ``int` `K = 2;`   `    ``sumEvenNumbers(N, K);` `    ``return` `0;` `}`

## Java

 `// Java implementation to represent` `// N as sum of K even numbers` `import` `java.util.*;`   `class` `GFG{` `    `  `// Function to print the representation` `static` `void` `sumEvenNumbers(``int` `N, ``int` `K)` `{` `    ``int` `check = N - ``2` `* (K - ``1``);`   `    ``// N must be greater than equal to 2 * K` `    ``// and must be even` `    ``if` `(check > ``0` `&& check % ``2` `== ``0``)` `    ``{` `        ``for``(``int` `i = ``0``; i < K - ``1``; i++)` `        ``{` `           ``System.out.print(``"2 "``);` `        ``}` `        ``System.out.println(check);` `    ``}` `    ``else` `    ``{` `        ``System.out.println(``"-1"``);` `    ``}` `}`   `// Driver Code` `public` `static` `void` `main(String args[])` `{` `    ``int` `N = ``8``;` `    ``int` `K = ``2``;`   `    ``sumEvenNumbers(N, K);` `}` `}`   `// This code is contributed by ANKITKUMAR34`

## Python3

 `# Python3 implementation to represent` `# N as sum of K even numbers`   `# Function to print the representation` `def` `sumEvenNumbers(N, K):` `    `  `    ``check ``=` `N ``-` `2` `*` `(K ``-` `1``)`   `    ``# N must be greater than equal to 2 * K` `    ``# and must be even` `    ``if` `(check > ``0` `and` `check ``%` `2` `=``=` `0``):` `        ``for` `i ``in` `range``(K ``-` `1``):` `            ``print``(``"2 "``, end ``=` `"")` `            `  `        ``print``(check)` `    ``else``:` `        ``print``(``"-1"``)`   `# Driver Code` `N ``=` `8` `K ``=` `2` `sumEvenNumbers(N, K)`   `# This code is contributed by ANKITKUMAR34`

## C#

 `// C# implementation to represent` `// N as sum of K even numbers` `using` `System;`   `class` `GFG{` `    `  `// Function to print the representation` `static` `void` `sumEvenNumbers(``int` `N, ``int` `K)` `{` `    ``int` `check = N - 2 * (K - 1);`   `    ``// N must be greater than equal to` `    ``//  2 * K and must be even` `    ``if` `(check > 0 && check % 2 == 0)` `    ``{` `        ``for``(``int` `i = 0; i < K - 1; i++)` `        ``{` `           ``Console.Write(``"2 "``);` `        ``}` `        ``Console.WriteLine(check);` `    ``}` `    ``else` `    ``{` `        ``Console.WriteLine(``"-1"``);` `    ``}` `}`   `// Driver Code` `static` `public` `void` `Main(String []args)` `{` `    ``int` `N = 8;` `    ``int` `K = 2;`   `    ``sumEvenNumbers(N, K);` `}` `}`   `// This code is contributed by 29AjayKumar`

## Javascript

 ``

Output:

`2 6`

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

My Personal Notes arrow_drop_up
Related Articles