# 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 = 6Output:40Explanation:3 + 3+4 + 3+4+5 + 3+4+5+6 = 40

Input:L = 5, R = 6Output: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 <iostream>` `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

`# Pyhton 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

`<script>` ` ` `// JavaScript code for the above approach` ` ` `// Function to return sum` ` ` `function` `findSum(L, R) {` ` ` `// Initializing the variables` ` ` `let sum = 0, d = R - L + 1;` ` ` `for` `(let i = L; i <= R; i++) {` ` ` `sum += (i * d);` ` ` `d--;` ` ` `}` ` ` `// Return Sum as the final result.` ` ` `return` `sum;` ` ` `}` ` ` `// Driver Code` ` ` `let L = 3, R = 6;` ` ` `// Function call` ` ` `document.write(findSum(L, R));` ` ` `// This code is contributed by Potta Lokesh` ` ` `</script>` |

**Output**

40

**Time Complexity: **O(R-L+1)

**Auxiliary Space: **O(1)