Check if all digits of a number divide it (original) (raw)

Last Updated : 1 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 <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 = 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

nn % ndigit == 0); } // Function to check if all digits // of n divide it or not function allDigitsDivide($n) { temp=temp = temp=n; while ($temp > 0) { // Taking the digit of the // number into digit var. digit=digit = 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 <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 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 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

`

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