Given a number n, find whether all digits of n divide it or not. Examples:
Input : 128 Output : Yes 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0. Input : 130 Output : No
We want to test whether each digit is non-zero and divides the number. For example, with 128, we want to test d != 0 && 128 % d == 0 for d = 1, 2, 8. To do that, we need to iterate over each digit of the number.
C++
// CPP program to check the number // is divisible by all digits are not. #include <bits/stdc++.h> using namespace std;
// Function to check the divisibility // of the number by its digit. bool checkDivisibility( int n, int digit)
{ // If the digit divides the number
// then return true else return false.
return (digit != 0 && n % digit == 0);
} // Function to check if all digits // of n divide it or not bool allDigitsDivide( int n)
{ int temp = n;
while (temp > 0) {
// Taking the digit of the
// number into digit var.
int digit = n % 10;
if (!(checkDivisibility(n, digit)))
return false ;
temp /= 10;
}
return true ;
} // Driver function int main()
{ int n = 128;
if (allDigitsDivide(n))
cout << "Yes" ;
else
cout << "No" ;
return 0;
} |
Output:
Yes
Time Complexity: O(log10n), where n represents the given integer.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Please refer complete article on Check if all digits of a number divide it for more details!
Article Tags :
Recommended Articles