Open In App

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

Last Updated : 24 Jan, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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 = 3
Output: 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 = S

Input: N = 5, S =3
Output: 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
  • 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


Javascript




// JS program remove two consecutive integers
// from 1 to N to make sum equal to S
 
// Function to find the numbers
// to be removed
function findNumber(N, S)
{
    // typecast appropriately
    // so that answer is float
    let i = (((N) * (N + 1)) / 4) - ((S + 1) / 2);
 
    // return the obtained result
    return i;
}
 
function check(N, S)
{
    let i = findNumber(N, S);
 
    // Convert i to integer
    let integerI = parseInt(i);
 
    // If i is an integer is 0
    // then answer is Yes
    if (i - integerI == 0){
        let value = integerI + 1;
        console.log("Yes: " + integerI + "," + value);
    }
    else
        console.log("No")
}
 
// Driver code
let N = 4, S = 3;
check(N, S);
 
N = 5, S = 3;
check(N, S);
 
// This code is contributed by Yash Agarwal


Output

Yes: 3, 4
No

Time Complexity: O(1)
Auxiliary Space: O(1)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads