Programa en C++ para verificar si todos los dígitos de un número lo dividen

Dado un número n, encuentre si todos los dígitos de n lo dividen o no. Ejemplos:

Input : 128
Output : Yes
128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.

Input : 130
Output : No

Queremos probar si cada dígito es distinto de cero y divide el número. Por ejemplo, con 128, queremos probar d != 0 && 128 % d == 0 para d = 1, 2, 8. Para hacer eso, necesitamos iterar sobre cada dígito del número. 

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;
}
Producción:

Yes

Complejidad de tiempo: O(log 10 n), donde n representa el entero dado.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.

Consulte el artículo completo sobre Comprobar si todos los dígitos de un número lo dividen para obtener más detalles.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *