# Check whether a number can be represented as sum of K distinct positive integers

Given two integers N and K, the task is to check whether N can be represented as sum of K distinct positive integers.

Examples:

Input: N = 12, K = 4
Output: Yes
N = 1 + 2 + 4 + 5 = 12 (12 as sum of 4 distinct integers)

Input: N = 8, K = 4
Output: No

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Consider the series 1 + 2 + 3 + … + K which has exactly K distinct integers with minimum possible sum i.e. Sum = (K * (K – 1)) / 2. Now, if N < Sum then it is not possible to represent N as the sum of K distinct positive integers but if N ≥ Sum then any integer say X ≥ 0 can be added to Sum to generate the sum equal to N i.e. 1 + 2 + 3 + … + (K – 1) + (K + X) ensuring that there are exactly K distinct positive integers.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function that returns true if n ` `// can be represented as the sum of ` `// exactly k distinct positive integers ` `bool` `solve(``int` `n, ``int` `k) ` `{ ` `    ``// If n can be represented as ` `    ``// 1 + 2 + 3 + ... + (k - 1) + (k + x) ` `    ``if` `(n >= (k * (k + 1)) / 2) { ` `        ``return` `true``; ` `    ``} ` ` `  `    ``return` `false``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 12, k = 4; ` ` `  `    ``if` `(solve(n, k)) ` `        ``cout << ``"Yes"``; ` `    ``else` `        ``cout << ``"No"``; ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the approach ` `import` `java.io.*; ` ` `  `class` `GFG { ` ` `  `    ``// Function that returns true if n ` `    ``// can be represented as the sum of ` `    ``// exactly k distinct positive integers ` `    ``static` `boolean` `solve(``int` `n, ``int` `k) ` `    ``{ ` `        ``// If n can be represented as ` `        ``// 1 + 2 + 3 + ... + (k - 1) + (k + x) ` `        ``if` `(n >= (k * (k + ``1``)) / ``2``) { ` `            ``return` `true``; ` `        ``} ` ` `  `        ``return` `false``; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``12``, k = ``4``; ` ` `  `        ``if` `(solve(n, k)) ` `            ``System.out.println(``"Yes"``); ` `        ``else` `            ``System.out.println(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by anuj_67.. `

## Python3

 `# Python 3 implementation of the approach ` ` `  `# Function that returns true if n ` `# can be represented as the sum of ` `# exactly k distinct positive integers ` `def` `solve(n,k): ` `    ``# If n can be represented as ` `    ``# 1 + 2 + 3 + ... + (k - 1) + (k + x) ` `    ``if` `(n >``=` `(k ``*` `(k ``+` `1``)) ``/``/` `2``): ` `        ``return` `True` ` `  `    ``return` `False` ` `  `# Driver code ` `if` `__name__ ``=``=` `'__main__'``: ` `    ``n ``=` `12` `    ``k ``=` `4` ` `  `    ``if` `(solve(n, k)): ` `        ``print``(``"Yes"``) ` `    ``else``: ` `        ``print``(``"No"``) ` ` `  `# This code is contributed by ` `# Surendra_Gangwar `

## C#

 `// C# implementation of the approach ` `using` `System; ` ` `  `class` `GFG ` `{ ` `    ``// Function that returns true if n ` `    ``// can be represented as the sum of ` `    ``// exactly k distinct positive integers ` `    ``static` `bool` `solve(``int` `n, ``int` `k) ` `    ``{ ` `        ``// If n can be represented as ` `        ``// 1 + 2 + 3 + ... + (k - 1) + (k + x) ` `        ``if` `(n >= (k * (k + 1)) / 2) { ` `            ``return` `true``; ` `        ``} ` ` `  `        ``return` `false``; ` `    ``} ` ` `  `    ``// Driver code ` `    ``static` `public` `void` `Main () ` `    ``{ ` `        ``int` `n = 12, k = 4; ` ` `  `        ``if` `(solve(n, k)) ` `            ``Console.WriteLine(``"Yes"``); ` `        ``else` `            ``Console.WriteLine(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by ajit. `

## PHP

 `= (``\$k` `* (``\$k` `+ 1)) / 2) { ` `        ``return` `true; ` `    ``} ` ` `  `    ``return` `false; ` `} ` ` `  `// Driver code ` ` `  `\$n` `= 12; ` `\$k` `= 4; ` ` `  `if` `(solve(``\$n``, ``\$k``)) ` `    ``echo`  `"Yes"``; ` `else` `    ``echo`  `"No"``; ` ` `  `// This code is contributed by ihritik ` ` `  `?> `

Output:

```Yes
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.