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++ 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;
} |
// 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. |
# 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. |
// 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 // 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 ?> |
<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 numbers function countIn(l, r)
{ let ans = 0;
for (let i = l; i <= r; i++)
if (check(i))
ans += 1;
return ans;
} // Driver function let 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.