Sum of n digit numbers divisible by a given number
Given n and a number, the task is to find the sum of n digit numbers that are divisible by given number.
Examples:
Input : n = 2, number = 7
Output : 728
Explanation:
There are thirteen n digit numbers that are divisible by 7.
Numbers are : 14+ 21 + 28 + 35 + 42 + 49 + 56 + 63 +70 + 77 + 84 + 91 + 98.
Input : n = 3, number = 7
Output : 70336
Input : n = 3, number = 4
Output : 123300
Native Approach: Traverse through all n digit numbers. For every number check for divisibility, and make the sum.
C++
#include <cmath>
#include <iostream>
using namespace std;
int totalSumDivisibleByNum( int n, int number)
{
int firstnum = pow (10, n - 1);
int lastnum = pow (10, n);
int sum = 0;
for ( int i = firstnum; i < lastnum; i++)
if (i % number == 0)
sum += i;
return sum;
}
int main()
{
int n = 3, num = 7;
cout << totalSumDivisibleByNum(n, num) << "\n" ;
return 0;
}
|
Java
import java.io.*;
class GFG {
static int totalSumDivisibleByNum( int n, int number)
{
int firstnum = ( int )Math.pow( 10 , n - 1 );
int lastnum = ( int )Math.pow( 10 , n);
int sum = 0 ;
for ( int i = firstnum; i < lastnum; i++)
if (i % number == 0 )
sum += i;
return sum;
}
public static void main (String[] args)
{
int n = 3 , num = 7 ;
System.out.println(totalSumDivisibleByNum(n, num));
}
}
|
Python3
def totalSumDivisibleByNum(n, number):
firstnum = pow ( 10 , n - 1 )
lastnum = pow ( 10 , n)
sum = 0
for i in range (firstnum, lastnum):
if (i % number = = 0 ):
sum + = i
return sum
n = 3 ; num = 7
print (totalSumDivisibleByNum(n, num))
|
C#
using System;
class GFG {
static int totalSumDivisibleByNum( int n, int number)
{
int firstnum = ( int )Math.Pow(10, n - 1);
int lastnum = ( int )Math.Pow(10, n);
int sum = 0;
for ( int i = firstnum; i < lastnum; i++)
if (i % number == 0)
sum += i;
return sum;
}
public static void Main ()
{
int n = 3, num = 7;
Console.WriteLine(totalSumDivisibleByNum(n, num));
}
}
|
PHP
<?php
function totalSumDivisibleByNum( $n , $number )
{
$firstnum = pow(10, $n - 1);
$lastnum = pow(10, $n );
$sum = 0;
for ( $i = $firstnum ; $i < $lastnum ; $i ++)
if ( $i % $number == 0)
$sum += $i ;
return $sum ;
}
$n = 3; $num = 7;
echo totalSumDivisibleByNum( $n , $num ) , "\n" ;
?>
|
Javascript
<script>
function totalSumDivisibleByNum(n, number)
{
let firstnum = Math.pow(10, n - 1);
let lastnum = Math.pow(10, n);
let sum = 0;
for (let i = firstnum; i < lastnum; i++)
if (i % number == 0)
sum += i;
return sum;
}
let n = 3, num = 7;
document.write(totalSumDivisibleByNum(n, num));
</script>
|
Time Complexity: O(10n)
Auxiliary Space: O(1)
Efficient Method :
First, find the count of n digit numbers divisible by a given number. Then apply formula for sum of AP.
count/2 * (first-term + last-term)
C++
#include <cmath>
#include <iostream>
using namespace std;
int totalSumDivisibleByNum( int digit,
int number)
{
int firstnum = pow (10, digit - 1);
int lastnum = pow (10, digit);
firstnum = (firstnum - firstnum % number)
+ number;
lastnum = (lastnum - lastnum % number);
int count = ((lastnum - firstnum) /
number + 1);
return ((lastnum + firstnum) * count) / 2;
}
int main()
{
int n = 3, number = 7;
cout << totalSumDivisibleByNum(n, number);
return 0;
}
|
Java
import java.io.*;
class GFG {
static int totalSumDivisibleByNum( int digit,
int number)
{
int firstnum = ( int )Math.pow( 10 , digit - 1 );
int lastnum = ( int )Math.pow( 10 , digit);
firstnum = (firstnum - firstnum % number)
+ number;
lastnum = (lastnum - lastnum % number);
int count = ((lastnum - firstnum) /
number + 1 );
return ((lastnum + firstnum) * count) / 2 ;
}
public static void main (String[] args)
{
int n = 3 , number = 7 ;
System.out.println(totalSumDivisibleByNum(n, number));
}
}
|
Python3
def totalSumDivisibleByNum(digit, number):
firstnum = pow ( 10 , digit - 1 )
lastnum = pow ( 10 , digit)
firstnum = (firstnum - firstnum % number) + number
lastnum = (lastnum - lastnum % number)
count = ((lastnum - firstnum) / number + 1 )
return int (((lastnum + firstnum) * count) / 2 )
digit = 3 ; num = 7
print (totalSumDivisibleByNum(digit, num))
|
C#
using System;
class GFG {
static int totalSumDivisibleByNum( int digit,
int number)
{
int firstnum = ( int )Math.Pow(10, digit - 1);
int lastnum = ( int )Math.Pow(10, digit);
firstnum = (firstnum - firstnum % number)
+ number;
lastnum = (lastnum - lastnum % number);
int count = ((lastnum - firstnum) /
number + 1);
return ((lastnum + firstnum) * count) / 2;
}
public static void Main ()
{
int n = 3, number = 7;
Console.WriteLine(totalSumDivisibleByNum(n, number));
}
}
|
PHP
<?php
function totalSumDivisibleByNum( $digit ,
$number )
{
$firstnum = pow(10, $digit - 1);
$lastnum = pow(10, $digit );
$firstnum = ( $firstnum - $firstnum % $number )
+ $number ;
$lastnum = ( $lastnum - $lastnum % $number );
$count = (( $lastnum - $firstnum ) /
$number + 1);
return (( $lastnum + $firstnum ) *
$count ) / 2;
}
$n = 3; $number = 7;
echo totalSumDivisibleByNum( $n , $number );
?>
|
Javascript
<script>
function totalSumDivisibleByNum(digit, number)
{
let firstnum = Math.pow(10, digit - 1);
let lastnum = Math.pow(10, digit);
firstnum = (firstnum - firstnum %
number) + number;
lastnum = (lastnum - lastnum % number);
let count = ((lastnum - firstnum) /
number + 1);
return ((lastnum + firstnum) * count) / 2;
}
let n = 3, number = 7;
document.write(totalSumDivisibleByNum(n, number));
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Last Updated :
10 Nov, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...