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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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 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
?>

chevron_right



Output:

5


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.