Open In App

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

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

 ``

## Javascript

 `// Javascript program to find sum of numbers divisible``// by 6 in a given range.```

Output:

`36`

Time Complexity: O(1), as we are not using any loop or recursion to traverse.

Auxiliary Space: O(1), as we are not using any extra space.