# Count numbers in range L-R that are divisible by all of its non-zero digits

Given a range l – r (inclusive), count the numbers that are divisible by all of its non-zero digits.

Examples:

```Input : 1 9
Output : 9
Explanation:
all the numbers are divisible by
their digits in the range 1-9.

Input : 10 20
Output : 5
Explanation:
10, 11, 12, 15, 20
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:
1. Run a loop to generate every number from l and r.
2. Check if every non-zero digit of that number divides the number or not.
3. Keep a count of all numbers that are completely divisible by its digits.
4. Print the count of numbers.

Below is the implementation of the above approach:

## C++

 `// C++ program to ` `// Count numbers in ` `// range L-R that are ` `// divisible by ` `// all of its non-zero ` `// digits ` `#include ` `using` `namespace` `std; ` ` `  `// check if the number is  ` `// divisible by the digits. ` `bool` `check(``int` `n) ` `{ ` `    ``int` `m = n; ` `    ``while` `(n) { ` `        ``int` `r = n % 10; ` `        ``if` `(r > 0)  ` `            ``if` `((m % r) != 0) ` `                ``return` `false``;         ` `        ``n /= 10; ` `    ``} ` ` `  `    ``return` `true``; ` `} ` ` `  `// function to calculate the ` `// number of numbers ` `int` `count(``int` `l, ``int` `r) ` `{ ` `    ``int` `ans = 0; ` `    ``for` `(``int` `i = l; i <= r; i++)  ` `        ``if` `(check(i)) ` `            ``ans += 1;     ` `    ``return` `ans; ` `} ` ` `  `// Driver function ` `int` `main() ` `{ ` `    ``int` `l = 10, r = 20; ` `    ``cout << count(l, r); ` `    ``return` `0; ` `} `

## Java

 `// Java program to Count  ` `// numbers in range L-R ` `// that are divisible by ` `// all of its non-zero  ` `// digits ` `import` `java.io.*; ` ` `  `class` `GFG { ` ` `  `    ``// check if the number ` `    ``// is divisible by the ` `    ``// digits. ` `    ``static` `boolean` `check(``int` `n) ` `    ``{ ` `        ``int` `m = n; ` `     `  `        ``while` `(n != ``0``) ` `        ``{ ` `            ``int` `r = n % ``10``; ` `         `  `            ``if` `(r > ``0``)  ` `                ``if` `((m % r) != ``0``) ` `                    ``return` `false``;      ` `         `  `            ``n /= ``10``; ` `        ``} ` `     `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// function to calculate ` `    ``// the number of numbers ` `    ``static` `int` `count(``int` `l, ``int` `r) ` `    ``{ ` `        ``int` `ans = ``0``; ` `         `  `        ``for` `(``int` `i = l; i <= r; i++)  ` `            ``if` `(check(i)) ` `                ``ans += ``1``;  ` `        ``return` `ans; ` `    ``} ` `     `  `    ``// Driver function ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `l = ``10``, r = ``20``; ` `         `  `        ``System.out.println(count(``10``, ``20``)); ` `    ``} ` `} ` ` `  `// This code is contributed by Nikita Tiwari. `

## Python3

 `# Python 3 program ` `# to Count numbers in ` `# range L-R that are  ` `# divisible by all of ` `# its non-zero digits ` ` `  ` `  `# check if the number is  ` `# divisible by the digits. ` `def` `check(n) : ` `    ``m ``=` `n ` `    ``while` `(n !``=` `0``) : ` `        ``r ``=` `n ``%` `10` `        ``if` `(r > ``0``) : ` `            ``if` `((m ``%` `r) !``=` `0``) : ` `                ``return` `False`     `        ``n ``=` `n ``/``/` `10` `     `  `    ``return` `True` `     `  ` `  `# function to calculate the ` `# number of numbers ` `def` `count(l, r) : ` `    ``ans ``=` `0` `    ``for` `i ``in` `range``(l, r``+``1``) : ` `        ``if` `(check(i)) : ` `            ``ans ``=` `ans ``+` `1` `    ``return` `ans ` ` `  `# Driver function ` `l ``=` `10` `r ``=` `20` `print``(count(l, r)) ` ` `  `# This code is contributed by Nikita Tiwari. `

## C#

 `// Java program to Count  ` `// numbers in range L-R ` `// that are divisible by ` `// all of its non-zero  ` `// digits ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``// check if the number ` `    ``// is divisible by the ` `    ``// digits. ` `    ``static` `bool` `check(``int` `n) ` `    ``{ ` `        ``int` `m = n; ` `     `  `        ``while` `(n != 0) ` `        ``{ ` `            ``int` `r = n % 10; ` `         `  `            ``if` `(r > 0)  ` `                ``if` `((m % r) != 0) ` `                    ``return` `false``;  ` `         `  `            ``n /= 10; ` `        ``} ` `     `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// function to calculate ` `    ``// the number of numbers ` `    ``static` `int` `count(``int` `l, ``int` `r) ` `    ``{ ` `        ``int` `ans = 0; ` `         `  `        ``for` `(``int` `i = l; i <= r; i++)  ` `            ``if` `(check(i)) ` `                ``ans += 1;  ` `        ``return` `ans; ` `    ``} ` `     `  `    ``// Driver function ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `l = 10, r = 20; ` `         `  `        ``Console.WriteLine(count(l, r)); ` `    ``} ` `} ` ` `  `// This code is contributed by Vt_m. `

## PHP

 ` 0)  ` `            ``if` `((``\$m` `% ``\$r``) != 0) ` `                ``return` `false;      ` `        ``\$n` `/= 10; ` `    ``} ` ` `  `    ``return` `true; ` `} ` ` `  `// function to calculate the ` `// number of numbers ` `function` `countIn(``\$l``, ``\$r``) ` `{ ` `    ``\$ans` `= 0; ` `    ``for` `(``\$i` `= ``\$l``; ``\$i` `<= ``\$r``; ``\$i``++)  ` `        ``if` `(check(``\$i``)) ` `            ``\$ans` `+= 1;  ` `             `  `    ``return` `\$ans``; ` ` `  `} ` ` `  `// Driver function ` `\$l` `= 10; ``\$r` `= 20; ` `echo` `countIn(``\$l``, ``\$r``); ` ` `  `// This code is contributed ajit ` `?> `

Output:

```5
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

## Recommended Posts:

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.