Check if all digits of a number divide it

• Difficulty Level : Easy
• Last Updated : 01 Aug, 2022

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.

CPP

 `// CPP program to check the number``// is divisible by all digits are not.``#include ``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 = temp % 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;``}`

Java

 `// Java program to check whether``// number is divisible by all its digits.``import` `java.io.*;` `class` `GFG {` `    ``// Function to check the divisibility``    ``// of the number by its digit.``    ``static` `boolean` `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,``    ``static` `boolean` `allDigitsDivide(``int` `n)``    ``{``        ``int` `temp = n;``        ``while` `(temp > ``0``) {` `            ``// Taking the digit of the``            ``// number into var 'digit'.``            ``int` `digit = temp % ``10``;` `            ``if` `((checkDivisibility(n, digit)) == ``false``)``                ``return` `false``;` `            ``temp /= ``10``;``        ``}``        ``return` `true``;``    ``}` `    ``// Driver function``    ``public` `static` `void` `main(String args[])``    ``{``        ``int` `n = ``128``;` `        ``// function call to check``        ``// digits divisibility``        ``if` `(allDigitsDivide(n))``            ``System.out.println(``"Yes"``);` `        ``else``            ``System.out.println(``"No"``);``    ``}``}` `/*This code is contributed by Nikita Tiwari.*/`

Python3

 `# Python 3 program to``# check the number is``# divisible by all``# digits are not.` `# Function to check``# the divisibility``# of the number by``# its digit.``def` `checkDivisibility(n, digit) :``    ` `    ``# If the digit divides the``    ``# number then return true``    ``# else return false.``    ``return` `(digit !``=` `0` `and` `n ``%` `digit ``=``=` `0``)``    ` `# Function to check if``# all digits of n divide``# it or not``def` `allDigitsDivide( n) :``    ` `    ``temp ``=` `n``    ``while` `(temp > ``0``) :``        ` `        ``# Taking the digit of``        ``# the number into digit``        ``# var.``        ``digit ``=` `temp ``%` `10``        ``if` `((checkDivisibility(n, digit)) ``=``=` `False``) :``            ``return` `False` `        ``temp ``=` `temp ``/``/` `10``    ` `    ``return` `True` `# Driver function``n ``=` `128` `if` `(allDigitsDivide(n)) :``    ``print``(``"Yes"``)``else` `:``    ``print``(``"No"` `)``    ` `# This code is contributed by Nikita Tiwari.`

C#

 `// C# program to check whether``// number is divisible by all its digits.``using` `System;` `class` `GFG {` `    ``// Function to check the divisibility``    ``// of the number by its digit.``    ``static` `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,``    ``static` `bool` `allDigitsDivide(``int` `n)``    ``{``        ``int` `temp = n;``        ``while` `(temp > 0) {` `            ``// Taking the digit of the``            ``// number into var 'digit'.``            ``int` `digit = temp % 10;` `            ``if` `((checkDivisibility(n, digit)) == ``false``)``                ``return` `false``;` `            ``temp /= 10;``        ``}``        ``return` `true``;``    ``}` `    ``// Driver function``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 128;` `        ``// function call to check``        ``// digits divisibility``        ``if` `(allDigitsDivide(n))``            ``Console.WriteLine(``"Yes"``);` `        ``else``            ``Console.WriteLine(``"No"``);``    ``}``}` `/*This code is contributed by vt_m.*/`

PHP

 ` 0) {` `        ``// Taking the digit of the``        ``// number into digit var.``        ``\$digit` `= ``\$temp` `% 10;``        ` `        ``if` `(!(checkDivisibility(``\$n``, ``\$digit``)))``            ``return` `false;` `        ``\$temp` `/= 10;``    ``}``    ` `    ``return` `true;``}` `// Driver function` `    ``\$n` `= 128;``    ``if` `(allDigitsDivide(``\$n``))``        ``echo` `"Yes"``;``    ``else``        ``echo` `"No"``;``    ` `// This code is contributed by ajit.``?>`

Javascript

 ``

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.

Alternate Implementation in Python

C++

 `// C++ program to``// check the number is``// divisible by all``// digits are not.` `#include ` `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 and n % digit == 0);``}` `// Function to check if``// all digits of n divide``// it or not``bool` `allDigitsDivide(``int` `n)``{``    ``// creating a set of integers``    ``// representing the digits of n``    ``set<``int``> nlist;` `    ``// building the set``    ``for` `(``char` `c : to_string(n))``        ``nlist.insert(c - ``'0'``);` `    ``// checking if all the digits divide``    ``// n evenly``    ``for` `(``int` `digit : nlist) {``        ``if` `(!checkDivisibility(n, digit))``            ``return` `false``;``    ``}``    ``return` `true``;``}` `// Driver function``int` `main()``{``    ``int` `n = 128;``    ``cout << (allDigitsDivide(n) ? ``"Yes"` `: ``"No"``);``}` `// This code is contributed by phasing17`

Java

 `// Java program to``// check the number is``// divisible by all``// digits are not.``import` `java.util.*;` `class` `GFG {` `  ``// Function to check``  ``// the divisibility``  ``// of the number by``  ``// its digit.``  ``static` `boolean` `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``  ``static` `boolean` `allDigitsDivide(``int` `n)``  ``{``    ``HashSet nlist = ``new` `HashSet();` `    ``String nstr = String.valueOf(n);` `    ``for` `(``int` `i = ``0``; i < nstr.length(); i++) {``      ``nlist.add(nstr.charAt(i));``    ``}` `    ``for` `(``char` `digit : nlist) {``      ``int` `digitVal = digit - ``'0'``;``      ``if` `(!checkDivisibility(n, digitVal))``        ``return` `false``;``    ``}` `    ``return` `true``;``  ``}` `  ``// Driver function``  ``public` `static` `void` `main(String[] args)``  ``{``    ``int` `n = ``128``;` `    ``if` `(allDigitsDivide(n))``      ``System.out.println(``"Yes"``);``    ``else``      ``System.out.println(``"No"``);``  ``}``}` `// The code is contributed by phasing17`

Python3

 `# Python 3 program to``# check the number is``# divisible by all``# digits are not.`` ` `# Function to check``# the divisibility``# of the number by``# its digit.``def` `checkDivisibility(n, digit) :``     ` `    ``# If the digit divides the``    ``# number then return true``    ``# else return false.``    ``return` `(digit !``=` `0` `and` `n ``%` `digit ``=``=` `0``)``     ` `# Function to check if``# all digits of n divide``# it or not``def` `allDigitsDivide( n) :``    ``nlist ``=` `map``(``int``, ``set``(``str``(n)))``    ``for` `digit ``in` `nlist :``        ``if`  `not` `(checkDivisibility(n, digit)) :``            ``return` `False``    ``return` `True``     ` ` ` `# Driver function``n ``=` `128`` ` `print``(``"Yes"` `if` `(allDigitsDivide(n)) ``else` `"No"``)`

C#

 `// C# program to``// check the number is``// divisible by all``// digits are not.``using` `System;``using` `System.Linq;``using` `System.Collections.Generic;` `class` `GFG``{``  ` `    ``// Function to check``    ``// the divisibility``    ``// of the number by``    ``// its digit.``    ``static` `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``    ``static` `bool` `allDigitsDivide(``int` `n)``    ``{``        ``HashSet<``char``> nlist = ``new` `HashSet<``char``>(``            ``Convert.ToString(n).ToCharArray());` `        ``foreach``(``var` `digit ``in` `nlist)``        ``{``            ``if` `(checkDivisibility(n,``                                  ``Convert.ToInt32(digit)))``                ``return` `false``;``        ``}` `        ``return` `true``;``    ``}` `    ``// Driver function``    ``public` `static` `void` `Main(``string``[] args)``    ``{``        ``int` `n = 128;` `        ``if` `(allDigitsDivide(n))``            ``Console.Write(``"Yes"``);``        ``else``            ``Console.Write(``"No"``);``    ``}``}` `// The code is contributed by phasing17`

Javascript

 `// JavaScript program to``// check the number is``// divisible by all``// digits are not.`` ` `// Function to check``// the divisibility``// of the number by``// its digit.``function` `checkDivisibility(n, 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``function` `allDigitsDivide(n){``    ``let nlist = ``new` `Set(n.toString());``    ``nlist.forEach(digit => {``        ``if``(checkDivisibility(n, digit)){``            ``return` `false``;``        ``}      ``    ``});``    ` `    ``return` `true``;  ``}` `     ` ` ` `// Driver function``let n = 128;` `console.log((allDigitsDivide(n)) ? ``"Yes"` `: ``"No"``);`` ` `// The code is contributed by Nidhi goel`

Output

`Yes`

Time Complexity: O(n), where n represents the given integer.
Auxiliary Space: O(n), where n represents the given integer.

My Personal Notes arrow_drop_up