# Sum of all numbers divisible by 6 in a given range

Given a range L-R, find the sum of all numbers divisible by 6 in range L-R

L and R are very large.

Examples:

```Input : 1 20
Output : 36
Explanation: 6 + 12 + 18 = 36

Input : 5 7
Output : 6
Explanation: 6 is the only divisible number
in range 5-7
```

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

A naive approach is be to run a loop from L to R and sum up all the numbers divisible by 6.

An efficient approach is to sum all the numbers divisible by 6 up to R in sum, and sum all numbers divisible by 6 up to L-1. And then there subtraction will be the answer.

sum = 6 + 12 + 8 + …….(R/6)terms.
sum = 6(1 + 2 + 3……R/6 terms)

sumR = 3 * (R/6) * (R/6+1)

similarly we get

sumL as 3 * ((L-1)/6) * ((L-1/6)+1)

and the final answer as sumR – sumL.

## C++

 `// CPP program to find sum of numbers divisible ` `// by 6 in a given range. ` `#include ` `using` `namespace` `std; ` ` `  `// function to calculate the sum of ` `// all numbers divisible by 6 in range L-R.. ` `int` `sum(``int` `L, ``int` `R) ` `{ ` `    ``// no of multiples of 6 upto r ` `    ``int` `p = R / 6; ` ` `  `    ``// no of multiples of 6 upto l-1 ` `    ``int` `q = (L - 1) / 6; ` ` `  `    ``// summation of all multiples of 6 upto r ` `    ``int` `sumR = 3 * (p * (p + 1)); ` ` `  `    ``// summation of all multiples of 6 upto l-1 ` `    ``int` `sumL = (q * (q + 1)) * 3; ` ` `  `    ``// returns the answer ` `    ``return` `sumR - sumL; ` `} ` ` `  `// driver program to test the above function ` `int` `main() ` `{ ` `    ``int` `L = 1, R = 20; ` `    ``cout << sum(L, R); ` `    ``return` `0; ` `} `

## Java

 `// Java program to find sum of numbers ` `// divisible by 6 in a given range. ` `import` `java.io.*; ` `class` `GFG { ` ` `  `// function to calculate the sum  ` `// of all numbers divisible by 6 ` `// in range L-R.. ` `static` `int` `sum(``int` `L, ``int` `R) ` `{ ` `    ``// no of multiples of 6 upto r ` `    ``int` `p = R / ``6``; ` ` `  `    ``// no of multiples of 6 upto l-1 ` `    ``int` `q = (L - ``1``) / ``6``; ` ` `  `    ``// summation of all multiples of ` `    ``// 6 upto r ` `    ``int` `sumR = ``3` `* (p * (p + ``1``)); ` ` `  `    ``// summation of all multiples of  ` `    ``// 6 upto l-1 ` `    ``int` `sumL = (q * (q + ``1``)) * ``3``; ` ` `  `    ``// returns the answer ` `    ``return` `sumR - sumL; ` `} ` ` `  `// driver program  ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `L = ``1``, R = ``20``; ` `    ``System.out.println(sum(L, R)); ` `} ` `} ` ` `  `// This code is contributed by Prerna Saini `

## Python

 `# Python3 program to find sum of numbers divisible ` `# by 6 in a given range. ` ` `  `def` `sumDivisible(L, R): ` `   `  `    ``# no of multiples of 6 upto r ` `    ``p ``=` `int``(R``/``6``) ` ` `  `    ``# no of multiples of 6 upto l-1 ` `    ``q ``=` `int``((L``-``1``)``/``6``) ` ` `  `    ``# summation of all multiples of 6 upto r ` `    ``sumR ``=` `3` `*` `(p ``*` `(p ``+` `1``)) ` ` `  `    ``# summation of all multiples of 6 upto l-1 ` `    ``sumL ``=` `(q ``*` `(q ``+` `1``)) ``*` `3` ` `  `    ``# returns the answer ` `    ``return` `sumR ``-` `sumL ` ` `  `# driver code ` `L ``=` `1` `R ``=` `20` `print``(sumDivisible(L,R)) ` ` `  `# This code is contributed by 'Abhishek Sharma 44'. `

## C#

 `// C# program to find sum of numbers ` `// divisible by 6 in a given range. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``// function to calculate the sum  ` `    ``// of all numbers divisible by 6 ` `    ``// in range L-R.. ` `    ``static` `int` `sum(``int` `L, ``int` `R) ` `    ``{ ` `         `  `        ``// no of multiples of 6 upto r ` `        ``int` `p = R / 6; ` `     `  `        ``// no of multiples of 6 upto l-1 ` `        ``int` `q = (L - 1) / 6; ` `     `  `        ``// summation of all multiples of ` `        ``// 6 upto r ` `        ``int` `sumR = 3 * (p * (p + 1)); ` `     `  `        ``// summation of all multiples of  ` `        ``// 6 upto l-1 ` `        ``int` `sumL = (q * (q + 1)) * 3; ` `     `  `        ``// returns the answer ` `        ``return` `sumR - sumL; ` `    ``} ` `     `  `    ``// driver program  ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `L = 1, R = 20; ` `         `  `        ``Console.WriteLine(sum(L, R)); ` `    ``} ` `} ` ` `  `// This code is contributed by Anant Agarwal. `

## PHP

 ` `

Output:

```36
```

Time Complexity: O(1)

## tags:

Mathematical divisibility Mathematical