 GFG App
Open App Browser
Continue

# Count n digit numbers divisible by given number

Given number of digit n and a number, the task is to count all the numbers which are divisible by that number and having n digit.

Examples :

Input : n = 2, number = 7
Output : 13
Explanation: There are nine n digit numbers that are divisible by 7. Numbers are 14, 21, 28, 35, 42, 49, …. 91, 98

Input : n = 3, number = 7
Output : 128

Input : n = 4, number = 4
Output : 2250

Native Approach: Traverse through all n digit numbers. For every number check for divisibility,

## C++

 `// Simple CPP program to count n digit ` `// divisible numbers.` `#include ` `#include ` `using` `namespace` `std;`   `// Returns count of n digit numbers` `// divisible by 'number'` `int` `numberofterm(``int` `n, ``int` `number)` `{` `    ``// compute the first and last term` `    ``int` `firstnum = ``pow``(10, n - 1);` `    ``int` `lastnum = ``pow``(10, n);`   `    ``// count total number of which having` `    ``// n digit and divisible by number` `    ``int` `count = 0;` `    ``for` `(``int` `i = firstnum; i < lastnum; i++) ` `        ``if` `(i % number == 0)` `            ``count++; ` `    ``return` `count;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 3, num = 7;` `    ``cout << numberofterm(n, num) << ``"\n"``;` `    ``return` `0;` `}`

## Java

 `// Simple Java program to count n digit ` `// divisible numbers.` `import` `java.io.*;`   `class` `GFG {` `    `  `    ``// Returns count of n digit numbers` `    ``// divisible by 'number'` `    ``static` `int` `numberofterm(``int` `n, ``int` `number)` `    ``{` `        ``// compute the first and last term` `        ``int` `firstnum = (``int``)Math.pow(``10``, n - ``1``);` `        ``int` `lastnum = (``int``)Math.pow(``10``, n);` `    `  `        ``// count total number of which having` `        ``// n digit and divisible by number` `        ``int` `count = ``0``;` `        ``for` `(``int` `i = firstnum; i < lastnum; i++) ` `            ``if` `(i % number == ``0``)` `                ``count++; ` `        ``return` `count;` `    ``}` `    `  `    ``// Driver code` `    ``public` `static` `void` `main (String[] args) ` `    ``{` `        ``int` `n = ``3``, num = ``7``;` `        ``System.out.println(numberofterm(n, num));` `    ``}` `}`   `// This code is contributed by Ajit.`

## Python3

 `# Simple Python 3 program to count n digit ` `# divisible numbers`   `import` `math`   `# Returns count of n digit ` `# numbers divisible by number` `def` `numberofterm(n, number):`   `    ``# compute the first and last term` `    ``firstnum ``=` `math.``pow``(``10``, n ``-` `1``)` `    ``lastnum ``=` `math.``pow``(``10``, n)`   `    ``# count total number of which having` `    ``# n digit and divisible by number` `    ``count ``=` `0` `    ``for` `i ``in` `range``(``int``(firstnum), ``int``(lastnum)): ` `        ``if` `(i ``%` `number ``=``=` `0``):` `            ``count ``+``=` `1` `    ``return` `count`     `# Driver code` `n ``=` `3` `num ``=` `7` `print``(numberofterm(n, num))`   `# This article is contributed` `# by Smitha Dinesh Semwal`

## C#

 `// Simple C# program to count n digit ` `// divisible numbers.` `using` `System;`   `class` `GFG ` `{` `    `  `    ``// Returns count of n digit numbers` `    ``// divisible by 'number'` `    ``static` `int` `numberofterm(``int` `n, ``int` `number)` `    ``{` `        ``// compute the first and last term` `        ``int` `firstnum = (``int``)Math.Pow(10, n - 1);` `        ``int` `lastnum = (``int``)Math.Pow(10, n);` `    `  `        ``// count total number of which having` `        ``// n digit and divisible by number` `        ``int` `count = 0;` `        ``for` `(``int` `i = firstnum; i < lastnum; i++) ` `            ``if` `(i % number == 0)` `                ``count++; ` `        ``return` `count;` `    ``}` `    `  `    ``// Driver code` `    ``public` `static` `void` `Main () ` `    ``{` `        ``int` `n = 3, num = 7;` `        ``Console.Write(numberofterm(n, num));` `    ``}` `}`   `// This code is contributed by nitin mittal`

## PHP

 ``

## Javascript

 ``

Output:

`128`

Time Complexity: O(10n), which is exponential and bad for bigger n’s.

Auxiliary Space: O(1)

Efficient Approach: Find the first and last terms divisible, then apply the below formula

Count of divisible = (lastnumber – firstnumber)/number + 1

## C++

 `// Efficient CPP program to count n digit ` `// divisible numbers.` `#include ` `#include ` `using` `namespace` `std;`   `// find the number of term` `int` `numberofterm(``int` `digit, ``int` `number)` `{` `    ``// compute the first and last term` `    ``int` `firstnum = ``pow``(10, digit - 1);` `    ``int` `lastnum = ``pow``(10, digit);`   `    ``// first number which is divisible by given number` `    ``firstnum = (firstnum - firstnum % number) + number;`   `    ``// last number which is divisible by given number` `    ``lastnum = (lastnum - lastnum % number);`   `    ``// Apply the formula here` `    ``return` `((lastnum - firstnum) / number + 1);` `}`   `int` `main()` `{` `    ``int` `n = 3;` `    ``int` `number = 7;` `    ``cout << numberofterm(n, number) << ``"\n"``;` `    ``return` `0;` `}`

## Java

 `// Efficient Java program to count n digit ` `// divisible numbers.` `import` `java.io.*;`   `class` `GFG {` `    `  `    ``// find the number of term` `    ``static` `int` `numberofterm(``int` `digit, ``int` `number)` `    ``{` `        ``// compute the first and last term` `        ``int` `firstnum = (``int``)Math.pow(``10``, digit - ``1``);` `        ``int` `lastnum = (``int``)Math.pow(``10``, digit);` `    `  `        ``// first number which is divisible by given number` `        ``firstnum = (firstnum - firstnum % number) + number;` `    `  `        ``// last number which is divisible by given number` `        ``lastnum = (lastnum - lastnum % number);` `    `  `        ``// Apply the formula here` `        ``return` `((lastnum - firstnum) / number + ``1``);` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `main (String[] args) ` `    ``{` `        ``int` `n = ``3``;` `        ``int` `number = ``7``;` `        ``System.out.println(numberofterm(n, number));` `    ``}` `}`   `// This code is contributed by Ajit.`

## Python3

 `# Efficient Python program to  ` `# count n digit divisible numbers.`   `# Find the number of term` `def` `numberofterm(digit, number):` `    `  `    ``# compute the first and last term` `    ``firstnum ``=` `pow``(``10``, digit ``-` `1``)` `    ``lastnum ``=` `pow``(``10``, digit)`   `    ``# First number which is divisible by given number` `    ``firstnum ``=` `(firstnum ``-` `firstnum ``%` `number) ``+` `number`   `    ``# last number which is divisible by given number` `    ``lastnum ``=` `(lastnum ``-` `lastnum ``%` `number)`   `    ``# Apply the formula here` `    ``return` `((lastnum ``-` `firstnum) ``/``/` `number ``+` `1``);`   `# Driver code` `n ``=` `3``; number ``=` `7` `print``(numberofterm(n, number))`   `# This code is contributed by Ajit.`

## C#

 `// Efficient C# program to count n digit ` `// divisible numbers.` `using` `System;`   `class` `GFG {` `    `  `    ``// find the number of term` `    ``static` `int` `numberofterm(``int` `digit, ` `                            ``int` `number)` `    ``{` `        `  `        ``// compute the first and ` `        ``// last term` `        ``int` `firstnum = (``int``)Math.Pow(10,` `                             ``digit - 1);` `                             `  `        ``int` `lastnum = (``int``)Math.Pow(10, ` `                                ``digit);` `    `  `        ``// first number which is divisible` `        ``// by given number` `        ``firstnum = (firstnum - firstnum ` `                      ``% number) + number;` `    `  `        ``// last number which is divisible` `        ``// by given number` `        ``lastnum = (lastnum - lastnum` `                              ``% number);` `    `  `        ``// Apply the formula here` `        ``return` `((lastnum - firstnum)` `                          ``/ number + 1);` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `Main () ` `    ``{` `        ``int` `n = 3;` `        ``int` `number = 7;` `        `  `        ``Console.WriteLine(` `             ``numberofterm(n, number));` `    ``}` `}`   `// This code is contributed by anuj_67.`

## PHP

 ``

## Javascript

 ``

Output:

`128`

Time Complexity: O(log10n) as it is using inbuilt pow function

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up