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++ implementation to represent // N as sum of K even numbers #include <bits/stdc++.h> 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 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 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# 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 |
<script> // Javascript implementation to represent // N as sum of K even numbers // Function to print the representation function sumEvenNumbers(N, K)
{ let 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 (let i = 0; i < K - 1; i++)
{
document.write( "2 " );
}
document.write(check);
}
else
{
document.write( "-1" );
}
} // Driver Code let N = 8;
let K = 2;
sumEvenNumbers(N, K);
</script> |
2 6
Time Complexity: O(K)
Auxiliary Space: O(1)