Remove two consecutive integers from 1 to N to make sum equal to S

Given a sum S and an integer N, The task is to remove two consecutive integers from 1 to N to make sum equal to S.

**Examples:**

Input:N = 4, S = 3Output:Yes sum(1, 2, 3, 4) = 10, remove 3 and 4 from 1 to N now sum(1, 2) = 3 = S Hence by removing 3 and 4 we got sum = SInput:N = 5, S =3Output:No Its not possible to remove two elements from 1 to N such that new sum is 3

**Method 1:**- Create an array with elements from 1 to N.
- Each time remove two consecutive elements and check the difference between sum of N natural numbers and sum of two removed elements is S.
- sum of N natural numbers can be calculated using formula
sum = (n)(n + 1) / 2

**Time complexity:**O(n)**Space complexity:**O(n)**Method 2:**- We know that, sum of N natural numbers can be calculated using formula
sum = (n)(n + 1) / 2

- According to the problem statement, we need to remove two integers from 1 to N such that the sum of remaining integers is S.
- Let the two consecutive integers to be removed be
**i**and**i + 1**. - Therefore,
required sum = S = (n)(n + 1) / 2 - (i) - (i + 1) S = (n)(n + 1) / 2 - (2i - 1) Therefore, i = ((n)(n + 1) / 4) - ((S + 1) / 2)

- Hence find i using above formula
- if i is an integer, then answer is Yes else No

Below is the implementation of the above approach:

## C++

`// C++ program remove two consecutive integers`

`// from 1 to N to make sum equal to S`

`#include <bits/stdc++.h>`

`using`

`namespace`

`std;`

`// Function to find the numbers`

`// to be removed`

`float`

`findNumber(`

`int`

`N,`

`int`

`S)`

`{`

`// typecast appropriately`

`// so that answer is float`

`float`

`i = (((`

`float`

`)(N) * (`

`float`

`)(N + 1)) / 4)`

`- ((`

`float`

`)(S + 1) / 2);`

`// return the obtained result`

`return`

`i;`

`}`

`void`

`check(`

`int`

`N,`

`int`

`S)`

`{`

`float`

`i = findNumber(N, S);`

`// Convert i to integer`

`int`

`integerI = (`

`int`

`)i;`

`// If i is an integer is 0`

`// then answer is Yes`

`if`

`(i - integerI == 0)`

`cout <<`

`"Yes: "`

`<< integerI <<`

`", "`

`<< integerI + 1`

`<< endl;`

`else`

`cout <<`

`"No"`

`<< endl;`

`}`

`// Driver code`

`int`

`main()`

`{`

`int`

`N = 4, S = 3;`

`check(N, S);`

`N = 5, S = 3;`

`check(N, S);`

`return`

`0;`

`}`

## Java

`// Java program remove two consecutive integers`

`// from 1 to N to make sum equal to S`

`class`

`GFG`

`{`

`// Function to find the numbers`

`// to be removed`

`static`

`float`

`findNumber(`

`int`

`N,`

`int`

`S)`

`{`

`// typecast appropriately`

`// so that answer is float`

`float`

`i = (((`

`float`

`)(N) * (`

`float`

`)(N +`

`1`

`)) /`

`4`

`)`

`- ((`

`float`

`)(S +`

`1`

`) /`

`2`

`);`

`// return the obtained result`

`return`

`i;`

`}`

`static`

`void`

`check(`

`int`

`N,`

`int`

`S)`

`{`

`float`

`i = findNumber(N, S);`

`// Convert i to integer`

`int`

`integerI = (`

`int`

`)i;`

`// If i is an integer is 0`

`// then answer is Yes`

`if`

`(i - integerI ==`

`0`

`)`

`System.out.println(`

`"Yes: "`

`+ integerI +`

`", "`

`+ (integerI +`

`1`

`)) ;`

`else`

`System.out.println(`

`"No"`

`);`

`}`

`// Driver code`

`public`

`static`

`void`

`main (String[] args)`

`{`

`int`

`N =`

`4`

`, S =`

`3`

`;`

`check(N, S);`

`N =`

`5`

`; S =`

`3`

`;`

`check(N, S);`

`}`

`}`

`// This code is contributed by AnkitRai01`

## Python3

`# Python3 program remove two consecutive integers`

`# from 1 to N to make sum equal to S`

`# Function to find the numbers`

`# to be removed`

`def`

`findNumber(N, S) :`

`# typecast appropriately`

`# so that answer is float`

`i`

`=`

`(((N)`

`*`

`(N`

`+`

`1`

`))`

`/`

`4`

`)`

`-`

`((S`

`+`

`1`

`)`

`/`

`2`

`);`

`# return the obtained result`

`return`

`i;`

`def`

`check(N, S) :`

`i`

`=`

`findNumber(N, S);`

`# Convert i to integer`

`integerI`

`=`

`int`

`(i);`

`# If i is an integer is 0`

`# then answer is Yes`

`if`

`(i`

`-`

`integerI`

`=`

`=`

`0`

`) :`

`print`

`(`

`"Yes:"`

`, integerI,`

`","`

`, integerI`

`+`

`1`

`);`

`else`

`:`

`print`

`(`

`"No"`

`);`

`# Driver code`

`if`

`__name__`

`=`

`=`

`"__main__"`

`:`

`N`

`=`

`4`

`;`

`S`

`=`

`3`

`;`

`check(N, S);`

`N`

`=`

`5`

`;`

`S`

`=`

`3`

`;`

`check(N, S);`

`# This code is contributed by AnkitRai01`

## C#

`// C# program remove two consecutive integers`

`// from 1 to N to make sum equal to S`

`using`

`System;`

`class`

`GFG`

`{`

`// Function to find the numbers`

`// to be removed`

`static`

`float`

`findNumber(`

`int`

`N,`

`int`

`S)`

`{`

`// typecast appropriately`

`// so that answer is float`

`float`

`i = (((`

`float`

`)(N) * (`

`float`

`)(N + 1)) / 4)`

`- ((`

`float`

`)(S + 1) / 2);`

`// return the obtained result`

`return`

`i;`

`}`

`static`

`void`

`check(`

`int`

`N,`

`int`

`S)`

`{`

`float`

`i = findNumber(N, S);`

`// Convert i to integer`

`int`

`integerI = (`

`int`

`)i;`

`// If i is an integer is 0`

`// then answer is Yes`

`if`

`(i - integerI == 0)`

`Console.WriteLine(`

`"Yes: "`

`+ integerI +`

`", "`

`+ (integerI + 1)) ;`

`else`

`Console.WriteLine(`

`"No"`

`);`

`}`

`// Driver code`

`public`

`static`

`void`

`Main()`

`{`

`int`

`N = 4, S = 3;`

`check(N, S);`

`N = 5; S = 3;`

`check(N, S);`

`}`

`}`

`// This code is contributed by AnkitRai01`

**Output:**Yes: 3, 4 No

**Time complexity:**O(1)**Space complexity:**O(1)- We know that, sum of N natural numbers can be calculated using formula

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**