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
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 <bits/stdc++.h>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 numbersint count(int l, int r){ int ans = 0; for (int i = l; i <= r; i++) if (check(i)) ans += 1; return ans;}// Driver functionint 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 // digitsimport 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 numbersdef count(l, r) : ans = 0 for i in range(l, r+1) : if (check(i)) : ans = ans + 1 return ans# Driver functionl = 10r = 20print(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 // digitsusing 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
<?php// PHP 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.function check($n){ $m = $n; while ($n) { $r = $n % 10; if ($r > 0) if (($m % $r) != 0) return false; $n /= 10; } return true;}// function to calculate the// number of numbersfunction 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?> |
Javascript
<script>// Javascript 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.function check(n){ let m = n; while (n) { let r = n % 10; if (r > 0) if ((n % r) != 0) return false; n /= 10; } return true;}// function to calculate the// number of numbersfunction countIn(l, r){ let ans = 0; for (let i = l; i <= r; i++) if (check(i)) ans += 1; return ans;}// Driver functionlet l = 10; let r = 20;document.write(countIn(l, r)); // This code is contributed by sravan kumar</script> |
Output:
5
Time Complexity: O((r-l) * log10r), where r represents the upper limit of the range and l denotes the lower limit of the given range
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



