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 <bits/stdc++.h>` `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

`<?php` `// PHP program to find sum of numbers` `// divisible by 6 in a given range.` `// function to calculate the sum of` `// all numbers divisible by 6 in range L-R..` `function` `sum(` `$L` `, ` `$R` `)` `{` ` ` ` ` `// no of multiples of 6 upto r` ` ` `$p` `= ` `intval` `(` `$R` `/ 6);` ` ` `// no of multiples of 6 upto l-1` ` ` `$q` `= ` `intval` `((` `$L` `- 1) / 6);` ` ` `// summation of all multiples` ` ` `// of 6 upto r` ` ` `$sumR` `= ` `intval` `(3 * (` `$p` `* (` `$p` `+ 1)));` ` ` `// summation of all multiples` ` ` `// of 6 upto l-1` ` ` `$sumL` `= ` `intval` `((` `$q` `* (` `$q` `+ 1)) * 3);` ` ` `// returns the answer` ` ` `return` `$sumR` `- ` `$sumL` `;` `}` `// Driver Code` `$L` `= 1;` `$R` `= 20;` `echo` `sum(` `$L` `, ` `$R` `);` `// This code is contributed by Sam007` `?>` |

## Javascript

`// Javascript program to find sum of numbers divisible` `// by 6 in a given range.` `<script>` ` ` ` ` `// function to calculate the sum of` ` ` `// all numbers divisible by 6 in range L-R..` ` ` `function` `sum(L, R)` ` ` `{` ` ` `// no of multiples of 6 upto r` ` ` `let p = Math.floor(R / 6);` ` ` `// no of multiples of 6 upto l-1` ` ` `let q = Math.floor((L - 1) / 6);` ` ` `// summation of all multiples of 6 upto r` ` ` `let sumR = Math.floor(3 * (p * (p + 1)));` ` ` `// summation of all multiples of 6 upto l-1` ` ` `let sumL = Math.floor((q * (q + 1)) * 3);` ` ` `// returns the answer` ` ` `return` `sumR - sumL;` ` ` `}` ` ` `// Driver Code` ` ` `let L = 1, R = 20;` ` ` `document.write(sum(L, R));` ` ` ` ` `// This code is contributed by ajaykrsharma132.` `</script>` |

Output:

36

Time Complexity: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**