 GeeksforGeeks App
Open App Browser
Continue

# Calculate the sum of sum of numbers in range L to R

Given two numbers L and R. The task is to find the sum of numbers in the range L to R.

Examples:

Input: L = 3, R = 6
Output: 40
Explanation: 3 + 3+4 + 3+4+5 + 3+4+5+6 = 40

Input: L = 5, R = 6
Output: 16

Approach: This problem is formula-based. For the illustration given below, observe the number of times each number is repeating in the sum, and depending upon that the final sum is calculated.

Illustration: L = 3, R = 6

Sum = 3 + 3+4 + 3+4+5 + 3+4+5+6 = 3+3+3+3 + 4+4+4 + 5+5 + 6 (Upon Grouping)
That is equals to 3*4 + 4*3 + 5*2 + 6*1

Therefore for any range L to R, the sum can be calculated as:

L*D + (L+1)*(D-1) + (L+2)*(D-2) + … + (R-1)*(2) + R*1

Below is the implementation of above approach.

## C++

 `// C++ program for above approach``#include ``using` `namespace` `std;` `// Function to return sum``int` `findSum(``int` `L, ``int` `R)``{``    ``// Initializing the variables``    ``int` `sum = 0, d = R - L + 1;` `    ``for` `(``int` `i = L; i <= R; i++) {``        ``sum += (i * d);``        ``d--;``    ``}` `    ``// Return Sum as the final result.``    ``return` `sum;``}` `// Driver Code``int` `main()``{``    ``int` `L = 3, R = 6;` `    ``// Function call``    ``cout << findSum(L, R);` `    ``return` `0;``}`

## Java

 `// Java code to implement above approach``import` `java.util.*;``public` `class` `GFG {` `// Function to return sum``static` `int` `findSum(``int` `L, ``int` `R)``{``  ` `    ``// Initializing the variables``    ``int` `sum = ``0``, d = R - L + ``1``;` `    ``for` `(``int` `i = L; i <= R; i++) {``        ``sum += (i * d);``        ``d--;``    ``}` `    ``// Return Sum as the final result.``    ``return` `sum;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``int` `L = ``3``, R = ``6``;` `    ``// Function call``    ``System.out.println(findSum(L, R));` `}``}` `// This code is contributed by Samim Hossain Mondal.`

## Python

 `# Python program for above approach` `# Function to return sum``def` `findSum(L, R):``    ` `    ``# Initializing the variables``    ``sum` `=` `0``    ``d ``=` `R ``-` `L ``+` `1` `    ``for` `i ``in` `range``(L, R ``+` `1``):``        ``sum` `+``=` `(i ``*` `d)``        ``d ``=` `d ``-` `1` `    ``# Return Sum as the final result.``    ``return` `sum` `# Driver Code``L ``=` `3``R ``=` `6` `# Function call``print``(findSum(L, R))` `# This code is contributed by Samim Hossain Mondal.`

## C#

 `// C# code to implement above approach``using` `System;``public` `class` `GFG {` `  ``// Function to return sum``  ``static` `int` `findSum(``int` `L, ``int` `R)``  ``{` `    ``// Initializing the variables``    ``int` `sum = 0, d = R - L + 1;` `    ``for` `(``int` `i = L; i <= R; i++) {``      ``sum += (i * d);``      ``d--;``    ``}` `    ``// Return Sum as the final result.``    ``return` `sum;``  ``}` `  ``// Driver code``  ``public` `static` `void` `Main()``  ``{``    ``int` `L = 3, R = 6;` `    ``// Function call``    ``Console.WriteLine(findSum(L, R));``  ``}``}` `// This code is contributed by ukasp.`

## Javascript

 ``

Output

`40`

Time Complexity: O(R-L+1)

Auxiliary Space: O(1), since no extra space has been taken.

My Personal Notes arrow_drop_up