GeeksforGeeks App
Open App
Browser
Continue

# Sum of integers upto N with given unit digit

Given two integer N and D, the task is to find the sum of all the integers from 1 to N whose unit digit is D.
Examples:

Input: N = 30, D = 3
Output: 39
3 + 13 + 23 = 39
Input: N = 5, D = 7
Output:

Naive approach:

• Traverse from 1 to N.
• If the unit digit of the number is D add the number to the sum.
• Finally print the value of sum.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;``#define ll long long int` `// Function to return the required sum``ll getSum(``int` `n, ``int` `d)``{``    ``ll sum = 0;``    ``for` `(``int` `i = 1; i <= n; i++) {` `        ``// If the unit digit is d``        ``if` `(i % 10 == d)``            ``sum += i;``    ``}``    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``int` `n = 30, d = 3;``    ``cout << getSum(n, d);``    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.util.*;` `class` `solution``{` `// Function to return the required sum``static` `long` `getSum(``int` `n, ``int` `d)``{``    ``long` `sum = ``0``;``    ``for` `(``int` `i = ``1``; i <= n; i++) {` `        ``// If the unit digit is d``        ``if` `(i % ``10` `== d)``            ``sum += i;``    ``}``    ``return` `sum;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``int` `n = ``30``, d = ``3``;``    ``System.out.println(getSum(n, d));``   ` `}``}`

## Python3

 `# Python3 implementation of the approach` `# Function to return the required sum``def` `getSum(n, d) :``    ``sum` `=` `0``;``    ``for` `i ``in` `range``(n ``+` `1``) :` `        ``# If the unit digit is d``        ``if` `(i ``%` `10` `=``=` `d) :``            ``sum` `+``=` `i``    ``return` `sum` `# Driver code``if` `__name__ ``=``=` `"__main__"` `:` `    ``n , d ``=` `30``, ``3``    ``print``(getSum(n, d))` `# This code is contributed by Ryuga`

C#

``````
// C# implementation of the approach
using System;
class gfg
{
// Function to return the required sum
public static int getSum(int n, int d)
{
int sum = 0;
for (int i = 1; i <= n; i++) {

// If the unit digit is d
if (i % 10 == d)
sum += i;
}
return sum;
}

// Driver code
public static int Main()
{
int n = 30, d = 3;
Console.WriteLine( getSum(n, d));
return 0;
}
}
``````

## PHP

 ``

## Javascript

 ``

Output:

`39`

Time Complexity: O(n) since one traversal of the loop till the number is required to complete all operations hence the overall time required by the algorithm is linear

Auxiliary Space: O(1) since no extra array is used, the space taken by the algorithm is constant

Efficient approach: While D < N update sum = sum + D and D = D + 10. Print the sum in the end.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;``#define ll long long int` `// Function to return the required sum``ll getSum(``int` `n, ``int` `d)``{``    ``ll sum = 0;``    ``while` `(d <= n)``    ``{``        ``sum += d;``        ``d += 10;``    ``}``    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``int` `n = 30, d = 3;``    ``cout << getSum(n, d);``    ``return` `0;``}`

## Java

 `// Java implementation of the approach``class` `Solution``{` ` ` `// Function to return the required sum``static` `long` `getSum(``int` `n, ``int` `d)``{``    ``long` `sum = ``0``;``    ``while` `(d <= n) {``        ``sum += d;``        ``d += ``10``;``    ``}``    ``return` `sum;``}`` ` `// Driver code``public` `static` `void` `main(String args[])``{``    ``int` `n = ``30``, d = ``3``;``    ``System.out.print(getSum(n, d));``    ` `}``}``//contributed by Arnab Kundu`

## Python3

 `# Python3 implementation of the approach``# Function to return the required sum``def` `getSum(n, d):``    ``sum` `=` `0``    ``while` `(d <``=` `n):``        ``sum` `+``=` `d``        ``d ``+``=` `10``    ``return` `sum` `# Driver code``n ``=` `30``d ``=` `3``print``(getSum(n, d))` `# This code is contributed``# by sahishelangia`

## C#

 `// C# implementation of the approach``using` `System;``class` `GFG``{` `// Function to return the required sum``static` `long` `getSum(``int` `n, ``int` `d)``{``    ``long` `sum = 0;``    ``while` `(d <= n)``    ``{``        ``sum += d;``        ``d += 10;``    ``}``    ``return` `sum;``}` `// Driver code``public` `static` `void` `Main()``{``    ``int` `n = 30, d = 3;``    ``Console.Write(getSum(n, d));``}``}` `// This code is contributed``// by Akanksha Rai`

## PHP

 ``

## Javascript

 ``

Output:

`39`

Time Complexity: O(n) since one traversal of the loop till the number is required to complete all operations hence the overall time required by the algorithm is linear

Auxiliary Space: O(1) since no extra array is used so the space taken by the algorithm is constant

My Personal Notes arrow_drop_up