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