# Sum of the multiples of two numbers below N

Given three integer A, B and N. The task is to find the sum of all the elements below N which are multiples of either A or B.

Examples:

Input: N = 10, A = 3, B = 5
Output: 23
3, 5, 6 and 9 are the only numbers below 10 which are multiples of either 3 or 5

Input: N = 50, A = 8, B = 15
Output: 258

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

Naive approach:

• Initialise a variable sum = 0.
• Loop from 0 to n for each i check whether i % A = 0 or i % B = 0.
• If the above condition is satisfied, update sum = sum + i.
• Finally return the sum.

Below is the implementation of the above approach:

## C++

 `// C++ program to find the sum of all the integers ` `// below N which are multiples of either A or B ` `#include ` `using` `namespace` `std; ` ` `  `// Function to return the sum of all the integers ` `// below N which are multiples of either A or B ` `int` `findSum(``int` `n, ``int` `a, ``int` `b) ` `{ ` `    ``int` `sum = 0; ` `    ``for` `(``int` `i = 0; i < n; i++) ` ` `  `        ``// If i is a multiple of a or b ` `        ``if` `(i % a == 0 || i % b == 0) ` `            ``sum += i; ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 10, a = 3, b = 5; ` `    ``cout << findSum(n, a, b); ` `    ``return` `0; ` `} `

## Java

 `// Java program to find the sum of all the integers ` `// below N which are multiples of either A or B ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` ` `  ` `  `// Function to return the sum of all the integers ` `// below N which are multiples of either A or B ` `static` `int` `findSum(``int` `n, ``int` `a, ``int` `b) ` `{ ` `    ``int` `sum = ``0``; ` `    ``for` `(``int` `i = ``0``; i < n; i++) ` ` `  `        ``// If i is a multiple of a or b ` `        ``if` `(i % a == ``0` `|| i % b == ``0``) ` `            ``sum += i; ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driver code ` ` `  ` `  `    ``public` `static` `void` `main (String[] args) { ` `        ``int` `n = ``10``, a = ``3``, b = ``5``; ` `    ``System.out.println( findSum(n, a, b)); ` `    ``} ` `} ` `// This code is contributed by anuj_67.. `

## Python3

 `# Python 3 program to find the sum of  ` `# all the integers below N which are ` `# multiples of either A or B ` ` `  `# Function to return the sum of all  ` `# the integers below N which are  ` `# multiples of either A or B ` `def` `findSum(n, a, b): ` `    ``sum` `=` `0` `    ``for` `i ``in` `range``(``0``, n, ``1``): ` `         `  `        ``# If i is a multiple of a or b ` `        ``if` `(i ``%` `a ``=``=` `0` `or` `i ``%` `b ``=``=` `0``): ` `            ``sum` `+``=` `i ` ` `  `    ``return` `sum` ` `  `# Driver code ` `if` `__name__ ``=``=` `'__main__'``: ` `    ``n ``=` `10` `    ``a ``=` `3` `    ``b ``=` `5` `    ``print``(findSum(n, a, b)) ` ` `  `# This code is contributed by ` `# Surendra_Gangwar `

## C#

 `// C# program to find the sum of all the integers ` `// below N which are multiples of either A or B ` ` `  `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``// Function to return the sum of all the integers ` `    ``// below N which are multiples of either A or B ` `    ``static` `int` `findSum(``int` `n, ``int` `a, ``int` `b) ` `    ``{ ` `        ``int` `sum = 0; ` `        ``for` `(``int` `i = 0; i < n; i++) ` `     `  `            ``// If i is a multiple of a or b ` `            ``if` `(i % a == 0 || i % b == 0) ` `                ``sum += i; ` `     `  `        ``return` `sum; ` `    ``} ` ` `  ` `  `    ``// Driver code ` `    ``static` `void` `Main() { ` `        ``int` `n = 10, a = 3, b = 5; ` `        ``Console.WriteLine(findSum(n, a, b)); ` `    ``} ` `    ``// This code is contributed by Ryuga ` `} `

## PHP

 ` `

Output:

```23
```

Efficient approach:

• We know that multiples of A will form an AP as SA = (x) + (x + A) + (x + 2*A) + …
• And the multiples of B will form an AP as SB = (y) + (y + B) + (y + 2*B) + …
• Now, Sum = SA + SB but in this series the multiples of A * B will be repeated twice, once in SA and once in SB.
• So, these multiples need to be discarded from the result.
• Hence, the final result will be SA + SB – SA*B

Below is the implementation of the above approach:

## C++

 `// C++ program to find the sum of all the integers ` `// below N which are multiples of either A or B ` `#include ` `using` `namespace` `std; ` ` `  `// Function to find sum of AP series ` `long` `long` `sumAP(``long` `long` `n, ``long` `long` `d) ` `{ ` `    ``// Number of terms ` `    ``n /= d; ` ` `  `    ``return` `(n) * (1 + n) * d / 2; ` `} ` ` `  `// Function to find the sum of all ` `// multiples of a and b below n ` `long` `long` `sumMultiples(``long` `long` `n, ``long` `long` `a, ``long` `long` `b) ` `{ ` `    ``// Since, we need the sum of ` `    ``// multiples less than N ` `    ``n--; ` ` `  `    ``return` `sumAP(n, a) + sumAP(n, b) - sumAP(n, a * b); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``long` `long` `n = 10, a = 3, b = 5; ` ` `  `    ``cout << sumMultiples(n, a, b); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java  program to find the sum of all the integers ` `// below N which are multiples of either A or B ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `// Function to find sum of AP series ` `static` `long` `sumAP(``long` `n, ``long` `d) ` `{ ` `    ``// Number of terms ` `    ``n = (``int``)n/d; ` ` `  `    ``return` `(n) * (``1` `+ n) * d / ``2``; ` `} ` ` `  `// Function to find the sum of all ` `// multiples of a and b below n ` `static` `long` `sumMultiples( ``long` `n, ``long` `a,  ``long` `b) ` `{ ` `    ``// Since, we need the sum of ` `    ``// multiples less than N ` `    ``n--; ` ` `  `    ``return` `sumAP(n, a) + sumAP(n, b) - sumAP(n, a * b); ` `} ` ` `  `// Driver code ` `    ``public` `static` `void` `main (String[] args) { ` ` `  `         `  `    ``long` `n = ``10``, a = ``3``, b = ``5``; ` ` `  `        ``System.out.println (sumMultiples(n, a, b)); ` `    ``} ` `//This code is contributed by akt_mit     ` `} `

## Python3

 `# Python3 program to find the sum of  ` `# all the integers below N which are ` `# multiples of either A or B  ` ` `  `# Function to find sum of AP series  ` `def` `sumAP(n, d): ` `     `  `    ``# Number of terms  ` `    ``n ``=` `n``/``/``d  ` ` `  `    ``return` `(n) ``*` `(``1` `+` `n) ``*` `d ``/``/` `2` ` `  `# Function to find the sum of all  ` `# multiples of a and b below n  ` `def` `sumMultiples(n, a, b): ` ` `  `    ``# Since, we need the sum of  ` `    ``# multiples less than N  ` `    ``n ``=` `n``-``1` `    ``return` `sumAP(n, a) ``+` `sumAP(n, b) ``-` `\ ` `                         ``sumAP(n, a ``*` `b)  ` ` `  `# Driver code  ` `n ``=` `10` `a ``=` `3` `b ``=` `5` `print``(sumMultiples(n, a, b))  ` ` `  `# This code is contributed by Sanjit Prasad `

## C#

 `// C#  program to find the sum of all the integers ` `// below N which are multiples of either A or B ` ` `  ` `  `using` `System; ` ` `  `public` `class` `GFG{ ` `         `  `// Function to find sum of AP series ` `static` `long` `sumAP(``long` `n, ``long` `d) ` `{ ` `    ``// Number of terms ` `    ``n = (``int``)n/d; ` ` `  `    ``return` `(n) * (1 + n) * d / 2; ` `} ` ` `  `// Function to find the sum of all ` `// multiples of a and b below n ` `static` `long` `sumMultiples( ``long` `n, ``long` `a, ``long` `b) ` `{ ` `    ``// Since, we need the sum of ` `    ``// multiples less than N ` `    ``n--; ` ` `  `    ``return` `sumAP(n, a) + sumAP(n, b) - sumAP(n, a * b); ` `} ` ` `  `// Driver code ` `    ``static` `public` `void` `Main (){ ` `         `  `         `  `    ``long` `n = 10, a = 3, b = 5; ` ` `  `        ``Console.WriteLine(sumMultiples(n, a, b)); ` `    ``} ` `    ``//This code is contributed by ajit.  ` `} `

## PHP

 `

Output:

```23
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.