# Sum of multiples of a number up to N

Given a number a and limit N. Find the sum of multiple of a upto N.

Examples :

```Input : a = 4, N = 23
Output : sum = 60
[Multiples : 4, 8, 12, 16, 20]

Input :a = 7, N = 49
Output :sum = 196
[Multiples: 7, 14, 21, 28, 35, 42, 49]
```

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

The basic idea is to iterate from i = a to i = n, i++ and check whether i % a == 0 or not.If zero then add i to sum(initially sum = 0).Thus we will get the sum.It will take O(n) time.

We can modify the loop as i = a, i <= n, i = i + a to reduce the number of iterations.But it will also take O(m) time if there is m multiples of a.

To get the result in O(1) time we can use the formula of summation of n natural numbers.For the above example,
a = 4 and N = 23, number of multiples of a, m = N/a(integer division). The multiples are 4, 8, 12, 16, 20.
We can write it as 4 X [1, 2, 3, 4, 5]. So we can get the sum of multiples as:

``` sum = a * (Summation of 1 to m [natural numbers from 1 to m])
sum = 4 * (m*(m+1) / 2)
sum = 4 * (5*6 / 2) = 4 * 15 = 60 ```

## C++

 `// C++ program to find sum of multiples of a number ` `// up to N efficiently ` `#include ` `using` `namespace` `std; ` ` `  `// Function for calculating sum of multiples of ` `// a upto N ` `int` `calculate_sum(``int` `a, ``int` `N) ` `{ ` `    ``// Number of multiples ` `    ``int` `m = N / a; ` ` `  `    ``// sum of first m natural numbers ` `    ``int` `sum = m * (m + 1) / 2; ` ` `  `    ``// sum of multiples ` `    ``int` `ans = a * sum; ` ` `  `    ``return` `ans; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `a = 7, N = 49; ` `    ``cout << ``"Sum of multiples of "`  `         ``<< a << ``" up to "` `<< N << ``" = "` `         ``<< calculate_sum(a, N) << endl; ` `    ``return` `0; ` `} `

## Java

 `// Java program to find sum of multiples  ` `// of a number up to N efficiently ` ` `  `class` `GFG { ` `     `  `// Function for calculating sum  ` `// of multiples of a upto N ` `static` `int` `calculate_sum(``int` `a, ``int` `N) { ` `     `  `    ``// Number of multiples ` `    ``int` `m = N / a; ` ` `  `    ``// sum of first m natural numbers ` `    ``int` `sum = m * (m + ``1``) / ``2``; ` ` `  `    ``// sum of multiples ` `    ``int` `ans = a * sum; ` ` `  `    ``return` `ans; ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) { ` `     `  `    ``int` `a = ``7``, N = ``49``; ` `    ``System.out.println(``"Sum of multiples of "` `+ a +  ` `                       ``" up to "` `+ N + ``" = "` `+ ` `                               ``calculate_sum(a, N)); ` `} ` `} ` ` `  `// This code is contributed by Anant Agarwal. `

## Python3

 `"""Python program to find sum of ` `multiples of a number up to N"""`  ` `  `# Calculates sum of multiples of  ` `# a number upto N ` `def` `calculate_sum(a, N): ` ` `  `    ``# Number of multiples ` `    ``m ``=` `N ``/` `a ` ` `  `    ``# sum of first m natural numbers ` `    ``sum` `=` `m ``*` `(m ``+` `1``) ``/` `2` ` `  `    ``# sum of multiples ` `    ``ans ``=` `a ``*` `sum` ` `  `    ``print``(``"Sum of multiples of "``, a, ` `          ``" up to "``, N, ``" = "``, ans) ` ` `  `# Driver Code ` `calculate_sum(``7``, ``49``) ` `     `  `# This code is contributed by Abhishek Agrawal.  `

## C#

 `// C# program to find sum of multiples ` `// of a number up to N efficiently ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``// Function for calculating sum ` `    ``// of multiples of a upto N ` `    ``static` `int` `calculate_sum(``int` `a, ``int` `N) ` `    ``{ ` ` `  `        ``// Number of multiples ` `        ``int` `m = N / a; ` ` `  `        ``// sum of first m natural numbers ` `        ``int` `sum = m * (m + 1) / 2; ` ` `  `        ``// sum of multiples ` `        ``int` `ans = a * sum; ` ` `  `        ``return` `ans; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` ` `  `        ``int` `a = 7, N = 49; ` `        ``Console.WriteLine(``"Sum of multiples of "` `+ a +  ` `         ``" up to "` `+ N + ``" = "` `+ calculate_sum(a, N)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m. `

## PHP

 ` `

Output :

```Sum of multiples of 7 upto 49 = 196
```

This article is contributed by Sukanta Nandi. 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.

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up

Improved By : Sam007

Article Tags :
Practice Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.