# 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
Recommended Articles
Page :