GFG App
Open App
Browser
Continue

# Sum of first N natural numbers which are divisible by 2 and 7

Given a number N. The task is to find the sum of all those numbers from 1 to N that are divisible by 2 or by 7.
Examples

```Input : N = 7
Output : 19
sum = 2 + 4 + 6 + 7

Input : N = 14
Output : 63
sum = 2 + 4 + 6 + 7 + 8 + 10 + 12 + 14```

Brute Force Approach:

A brute force approach to solve this problem would be to loop through all the numbers from 1 to N, and for each number, check if it is divisible by 2 or 7. If it is, then add it to the result. At the end of the loop, return the result.

Below is the implementation of the above approach:

## C++

 `// C++ program to find sum of numbers from 1 to N` `// which are divisible by 2 or 7` `#include ` `using` `namespace` `std;`   `// Function to calculate the sum` `// of numbers divisible by 2 or 7` `int` `sum(``int` `N)` `{` `    ``int` `ans = 0;` `    ``for``(``int` `i = 1; i <= N; i++){` `        ``if``(i % 2 == 0 || i % 7 == 0){` `            ``ans += i;` `        ``}` `    ``}` `    ``return` `ans;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `N = 20;`   `    ``cout << sum(N);`   `    ``return` `0;` `}`

## Python3

 `# Python program to find sum of numbers from 1 to N` `# which are divisible by 2 or 7`   `# Function to calculate the sum` `# of numbers divisible by 2 or 7` `def` `sum``(N):` `    ``ans ``=` `0` `    ``for` `i ``in` `range``(``1``, N``+``1``):` `        ``if` `i ``%` `2` `=``=` `0` `or` `i ``%` `7` `=``=` `0``:` `            ``ans ``+``=` `i` `    ``return` `ans`   `# Driver code` `if` `__name__ ``=``=` `"__main__"``:` `    ``N ``=` `20` `    ``print``(``sum``(N))`   `# The code is contributed by Nidhi goel.`

## Javascript

 `// Function to calculate the sum of numbers divisible by 2 or 7` `function` `sum(N) {` `    ``let ans = 0;` `    ``for` `(let i = 1; i <= N; i++) {` `        ``if` `(i % 2 == 0 || i % 7 == 0) {` `            ``ans += i;` `        ``}` `    ``}` `    ``return` `ans;` `}`   `let N = 20;` `console.log(sum(N));`

## Java

 `public` `class` `Main {`   `    ``// Driver Code` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``int` `N = ``20``;` `        ``int` `result = sum(N);` `        ``System.out.println(result);` `    ``}`   `    ``public` `static` `int` `sum(``int` `N)` `    ``{` `        ``int` `ans = ``0``;` `        ``for` `(``int` `i = ``1``; i <= N; i++) {` `            ``if` `(i % ``2` `== ``0` `|| i % ``7` `== ``0``) {` `                ``ans += i;` `            ``}` `        ``}` `        ``return` `ans;` `    ``}` `}`

Output

`117`

Time Complexity: O(N)

Space Complexity: O(1)

Approach: To solve the problem, follow the below steps:
->Find the sum of numbers that are divisible by 2 upto N. Denote it by S1.
->Find the sum of numbers that are divisible by 7 upto N. Denote it by S2.
->Find the sum of numbers that are divisible by 14(2*7) upto N. Denote it by S3.
->The final answer will be S1 + S2 – S3.
In order to find the sum, we can use the general formula of A.P. which is:

`Sn = (n/2) * {2*a + (n-1)*d}`

For S1: The total numbers that will be divisible by 2 upto N will be N/2 and the series will be 2, 4, 6, 8, ….

```Hence,
S1 = ((N/2)/2) * (2 * 2 + (N/2 - 1) * 2)```

For S2: The total numbers that will be divisible by 7 up to N will be N/7 and the series will be 7, 14, 21, 28, ……

```Hence,
S2 = ((N/7)/2) * (2 * 7 + (N/7 - 1) * 7)```

For S3: The total numbers that will be divisible by 14 upto N will be N/14.

```Hence,
S3 = ((N/14)/2) * (2 * 14 + (N/14 - 1) * 14)```

Therefore, the result will be:

`S = S1 + S2 - S3`

Below is the implementation of the above approach:

## C++

 `// C++ program to find sum of numbers from 1 to N` `// which are divisible by 2 or 7` `#include ` `using` `namespace` `std;`   `// Function to calculate the sum` `// of numbers divisible by 2 or 7` `int` `sum(``int` `N)` `{` `    ``int` `S1, S2, S3;`   `    ``S1 = ((N / 2)) * (2 * 2 + (N / 2 - 1) * 2) / 2;` `    ``S2 = ((N / 7)) * (2 * 7 + (N / 7 - 1) * 7) / 2;` `    ``S3 = ((N / 14)) * (2 * 14 + (N / 14 - 1) * 14) / 2;`   `    ``return` `S1 + S2 - S3;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `N = 20;`   `    ``cout << sum(N);`   `    ``return` `0;` `}`

## Java

 `// Java  program to find sum of ` `// numbers from 1 to N which ` `// are divisible by 2 or 7 `   `import` `java.io.*;`   `class` `GFG {` `// Function to calculate the sum ` `// of numbers divisible by 2 or 7 ` `public` `static` `int` `sum(``int` `N) ` `{ ` `    ``int` `S1, S2, S3; `   `    ``S1 = ((N / ``2``)) * (``2` `* ``2` `+ ` `        ``(N / ``2` `- ``1``) * ``2``) / ``2``; ` `    ``S2 = ((N / ``7``)) * (``2` `* ``7` `+ ` `        ``(N / ``7` `- ``1``) * ``7``) / ``2``; ` `    ``S3 = ((N / ``14``)) * (``2` `* ``14` `+ ` `        ``(N / ``14` `- ``1``) * ``14``) / ``2``; `   `    ``return` `S1 + S2 - S3; ` `} `   `// Driver code ` `    ``public` `static` `void` `main (String[] args) {`   `    ``int` `N = ``20``; ` `    ``System.out.println( sum(N)); ` `    ``} ` `} `   `// This code is contributed by ajit`

## Python3

 `# Python3 implementation of ` `# above approach`   `# Function to calculate the sum ` `# of numbers divisible by 2 or 7 ` `def` `sum``(N): ` `    `  `    ``S1 ``=` `((N ``/``/` `2``)) ``*` `(``2` `*` `2` `+` `(N ``/``/` `2` `-` `1``) ``*` `2``) ``/``/` `2` `    ``S2 ``=` `((N ``/``/` `7``)) ``*` `(``2` `*` `7` `+` `(N ``/``/` `7` `-` `1``) ``*` `7``) ``/``/` `2` `    ``S3 ``=` `((N ``/``/` `14``)) ``*` `(``2` `*` `14` `+` `(N ``/``/` `14` `-` `1``) ``*` `14``) ``/``/` `2`   `    ``return` `S1 ``+` `S2 ``-` `S3`     `# Driver code ` `if` `__name__``=``=``'__main__'``:` `    ``N ``=` `20`   `    ``print``(``sum``(N))`   `# This code is written by` `# Sanjit_Prasad`

## C#

 `// C# program to find sum of ` `// numbers from 1 to N which` `// are divisible by 2 or 7` `using` `System;`   `class` `GFG` `{` `// Function to calculate the sum` `// of numbers divisible by 2 or 7` `public` `static` `int` `sum(``int` `N)` `{` `    ``int` `S1, S2, S3;`   `    ``S1 = ((N / 2)) * (2 * 2 + ` `          ``(N / 2 - 1) * 2) / 2;` `    ``S2 = ((N / 7)) * (2 * 7 + ` `          ``(N / 7 - 1) * 7) / 2;` `    ``S3 = ((N / 14)) * (2 * 14 +` `          ``(N / 14 - 1) * 14) / 2;`   `    ``return` `S1 + S2 - S3;` `}`   `// Driver code` `public` `static` `int` `Main()` `{` `    ``int` `N = 20;` `    ``Console.WriteLine( sum(N));` `    ``return` `0;` `}` `}`   `// This code is contributed ` `// by SoumikMondal`

## PHP

 ``

## Javascript

 ``

Output:

`117`

Time Complexity: O(1), since there is no loop or recursion.

Auxiliary Space: O(1), since no extra space has been taken.

My Personal Notes arrow_drop_up