Open In App

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.
 

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




<?php
//PHP 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)
{
    $temp = $n;
    while ($temp > 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




<script>
    // 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 temp = n;
        while (temp > 0)
        {
 
            // Taking the digit of the
            // number into digit var.
            let digit = temp % 10;
            if (!(checkDivisibility(n, digit)))
                return false;
 
            temp = parseInt(temp / 10, 10);
        }
        return true;
    }
 
    let n = 128;
    if (allDigitsDivide(n))
        document.write("Yes");
    else
        document.write("No");
     
    // This code is contributed by divyeshrabadiya07.
</script>


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<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<Character> nlist = new HashSet<Character>();
 
    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.



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