# Sum of the numbers upto N that are divisible by 2 or 5

• Last Updated : 31 Jul, 2022

Given a number n. The task is to find the sum of numbers up to n, that are divisible by 2 or 5.
Examples:

Input: n = 2
Output: 2

Input: n = 5
Output: 11

A naive approach is to just iterate over the numbers up to n and check if it divisible by 2 or 5. If it is divisible then just add this number to our required sum. And finally, we got our total sum with a complexity of O(n).
Efficient Approach:

1. First find the numbers that are divisible by 2. So, these numbers for an AP, having

first term = 2, difference = 2, Number of terms = n/2
So, sum given by- 2. Secondly we find the numbers that are divisible by 5. So, these number for an AP, having

first term = 5, difference = 5, Number of terms = n/5
So, sum given by- 3. First we find the numbers that are divisible by 2 and 5.so, these number for an AP, having

first term =10, difference = 10, Number of terms = n / 10
So, sum given by- 4. As we have to find the sum of numbers divisible by 2 or 5. So, the required sum is given by-

sum = sum_2 + sum_5 – sum_10

Below is the implementation of the above approach:

## C++

 // C++ implementation of above approach#include #define ll long long intusing namespace std; // Function to find the sumll findSum(int n){     ll sum2, sum5, sum10;     // sum2 is sum of numbers divisible by 2    sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2;     // sum5 is sum of number divisible by 5    sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2;     // sum10 of numbers divisible by 2 and 5    sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2;     return sum2 + sum5 - sum10;} // Driver codeint main(){    int n = 5;     cout << findSum(n) << endl;    return 0;}

## Java

 // Java implementation of// above approachimport java.lang.*;import java.util.*; class GFG{ // Function to find the sumstatic long findSum(int n){    long sum2, sum5, sum10;         // sum2 is sum of numbers    // divisible by 2    sum2 = ((n / 2) * (4 +            (n / 2 - 1) * 2)) / 2;         // sum5 is sum of number    // divisible by 5    sum5 = ((n / 5) * (10 +            (n / 5 - 1) * 5)) / 2;         // sum10 of numbers divisible    // by 2 and 5    sum10 = ((n / 10) * (20 +             (n / 10 - 1) * 10)) / 2;         return sum2 + sum5 - sum10;} // Driver codepublic static void main (String[] args){    int n = 5;    System.out.println(findSum(n));}} // This code is contributed by Raj

## Python3

 # Python3 implementation of# above approach # Function to find the sumdef findSum(n):          # sum2 is sum of numbers divisible by 2    sum2 = ((n // 2) * (4 + (n // 2 - 1) * 2)) // 2     # sum5 is sum of number divisible by 5    sum5 = ((n // 5) * (10 + (n // 5 - 1) * 5)) // 2     # sum10 of numbers divisible by 2 and 5    sum10 = ((n // 10) * (20 + (n // 10 - 1) * 10)) // 2     return sum2 + sum5 - sum10;  # Driver codeif __name__=='__main__':    n = 5    print (int(findSum(n)))      # this code is contributed by Shivi_Aggarwal

## C#

 // C# implementation of// above approachusing System; class GFG{ // Function to find the sumstatic long findSum(int n){    long sum2, sum5, sum10;         // sum2 is sum of numbers    // divisible by 2    sum2 = ((n / 2) * (4 +            (n / 2 - 1) * 2)) / 2;         // sum5 is sum of number    // divisible by 5    sum5 = ((n / 5) * (10 +            (n / 5 - 1) * 5)) / 2;         // sum10 of numbers divisible    // by 2 and 5    sum10 = ((n / 10) * (20 +             (n / 10 - 1) * 10)) / 2;         return sum2 + sum5 - sum10;} // Driver codepublic static void Main (){    int n = 5;    Console.WriteLine(findSum(n));}} // This code is contributed by inder_verma

## PHP

 

## Javascript

 

Output

11


Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up