# Find any K distinct odd integers such that their sum is equal to N

• Last Updated : 08 Apr, 2021

Given two integers N and K, the task is to find any K distinct odd integers such that their sum is equal to N. If no such integers exists, print -1.
Examples:

Input: N = 10, K = 2
Output: 1, 9
Explanation:
There are two possible distinct odd integers, such that their sum is equal to N.
Possible K integers can be – {(1, 9), (3, 7)}
Input: N = 5, K = 4
Output: -1
Explanation:
There are no such 4 distinct odd integers such that their sum is 5.

Approach:

• The key observation in this problem is if N and K have different parity then it is not possible to find K such distinct integers such that their sum is equal to N,
• Otherwise such K – 1 integers will consist of first K-1 odd positive integers
• The Kth odd number will be equal to (N – the sum of first (K-1) odd integers)

`Kth Odd number  = N - sum of first K-1 integer`
•

Below is the implementation of the above approach:

## C++

 `// C++ implementation to find k``// odd integers such that their sum is N` `#include ``using` `namespace` `std;` `// Function to find K odd integers``// such that their sum is N``void` `oddIntegers(``int` `n, ``int` `k)``{``    ``// Condition to check if there``    ``// exist such K integers``    ``if` `(n % 2 != k % 2) {``        ``cout << ``"-1"``             ``<< ``"\n"``;``        ``return``;``    ``}` `    ``int` `sum = 0;``    ``int` `i = 1;``    ``int` `j = 1;` `    ``// Loop to find first K-1``    ``// distinct odd integers``    ``while` `(j < k) {``        ``sum = sum + i;``        ``cout << i << ``" "``;``        ``i = i + 2;``        ``j++;``    ``}` `    ``// Final Kth odd number``    ``int` `finalOdd = n - sum;` `    ``cout << finalOdd << ``"\n"``;``}` `// Driver code``int` `main()``{``    ``int` `n = 10;``    ``int` `k = 2;` `    ``oddIntegers(n, k);` `    ``return` `0;``}`

## Java

 `// Java implementation to find k``// odd integers such that their sum is N``class` `GFG``{` `// Function to find K odd integers``// such that their sum is N``static` `void` `oddIntegers(``int` `n, ``int` `k)``{``    ``// Condition to check if there``    ``// exist such K integers``    ``if` `(n % ``2` `!= k % ``2``) {``        ``System.out.println(``"-1"``);``        ``return``;``    ``}` `    ``int` `sum = ``0``;``    ``int` `i = ``1``;``    ``int` `j = ``1``;` `    ``// Loop to find first K-1``    ``// distinct odd integers``    ``while` `(j < k) {``        ``sum = sum + i;``        ``System.out.print(i+``" "``);``        ``i = i + ``2``;``        ``j++;``    ``}` `    ``// Final Kth odd number``    ``int` `finalOdd = n - sum;``    ` `    ``System.out.println(finalOdd);``}` `// Driver code``public` `static` `void` `main (String[] args)``{``    ``int` `n = ``10``;``    ``int` `k = ``2``;` `    ``oddIntegers(n, k);``}``}` `// This code is contributed by shubhamsingh`

## Python3

 `# Python3 implementation to find k``# odd integers such that their sum is N` `# Function to find K odd integers``# such that their sum is N``def` `oddIntegers(n, k) :` `    ``# Condition to check if there``    ``# exist such K integers``    ``if` `(n ``%` `2` `!``=` `k ``%` `2``) :``        ``print``(``"-1"``);``        ` `        ``return``;` `    ``sum` `=` `0``;``    ``i ``=` `1``;``    ``j ``=` `1``;` `    ``# Loop to find first K-1``    ``# distinct odd integers``    ``while` `(j < k) :``        ``sum` `+``=` `i;``        ``print``(i,end``=` `" "``);``        ``i ``+``=` `2``;``        ``j ``+``=` `1``;` `    ``# Final Kth odd number``    ``finalOdd ``=` `n ``-` `sum``;` `    ``print``(finalOdd);` `# Driver code``if` `__name__ ``=``=` `"__main__"` `:` `    ``n ``=` `10``;``    ``k ``=` `2``;` `    ``oddIntegers(n, k);``    ` `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation to find k``// odd integers such that their sum is N``using` `System;` `class` `GFG``{`` ` `// Function to find K odd integers``// such that their sum is N``static` `void` `oddints(``int` `n, ``int` `k)``{``    ``// Condition to check if there``    ``// exist such K integers``    ``if` `(n % 2 != k % 2) {``        ``Console.WriteLine(``"-1"``);``        ``return``;``    ``}`` ` `    ``int` `sum = 0;``    ``int` `i = 1;``    ``int` `j = 1;`` ` `    ``// Loop to find first K-1``    ``// distinct odd integers``    ``while` `(j < k) {``        ``sum = sum + i;``        ``Console.Write(i+``" "``);``        ``i = i + 2;``        ``j++;``    ``}`` ` `    ``// Final Kth odd number``    ``int` `finalOdd = n - sum;``     ` `    ``Console.WriteLine(finalOdd);``}`` ` `// Driver code``public` `static` `void` `Main(String[] args)``{``    ``int` `n = 10;``    ``int` `k = 2;`` ` `    ``oddints(n, k);``}``}` `// This code is contributed by PrinciRaj1992`

## Javascript

 ``

Output:

`1 9`

Performance Analysis:

• Time Complexity: As in the above approach, There is a loop to find such K odd integers which takes O(K) time in worst case. Hence the Time Complexity will be O(K).
• Auxiliary Space Complexity: As in the above approach, There is no extra space used. Hence the auxiliary space complexity will be O(1).

My Personal Notes arrow_drop_up