Open In App

C++ Program to Check if all digits of a number divide it

Improve
Improve
Like Article
Like
Save
Share
Report

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!


Last Updated : 12 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads