# Print digits for each array element that does not divide any digit of that element

• Last Updated : 29 Apr, 2021

Given an array arr[] consisting of N positive integers, the task for each array element arr[i] is to find all the digits from [0, 9] that do not divide any digit present in arr[i].

Examples:

Input: arr[] = {4162, 1152, 99842}
Output:
4162 -> 5 7 8 9
1152 -> 3 4 6 7 8 9
99842 -> 5 6 7
Explanation:
For arr ( = 4162): None of the digits of the element 4162 are divisible by 5, 7, 8, 9.
For arr( = 1152): None of the digits of the element 1152 are divisible by 9, 8, 7, 6, 4, 3.
For arr( = 99842): None of the digits of the element 99842 are divisible by 7, 6, 5.

Input: arr[] = {2021}
Output:
2021 -> 3 4 5 6 7 8 9

Approach: Follow the steps below to solve the problem:

• Traverse the given array arr[] and perform the following steps:
• Iterate over the range [2, 9] using the variable i, and if there doesn’t exist any digit in the element arr[i] that is divisible by i, then print the digit i.
• Otherwise, continue for the next iteration.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach``#include ``using` `namespace` `std;` `// Function to find digits for each array``// element that doesn't divide any digit``// of the that element``void` `indivisibleDigits(``int` `arr[], ``int` `N)``{``    ``// Traverse the array arr[]``    ``for` `(``int` `i = 0; i < N; i++) {` `        ``int` `num = 0;` `        ``cout << arr[i] << ``": "``;` `        ``// Iterate over the range [2, 9]``        ``for` `(``int` `j = 2; j < 10; j++) {` `            ``int` `temp = arr[i];` `            ``// Stores if there exists any digit``            ``// in arr[i] which is divisible by j``            ``bool` `flag = ``true``;` `            ``while` `(temp > 0) {` `                ``// If any digit of the number``                ``// is divisible by j``                ``if` `((temp % 10) != 0``                    ``&& (temp % 10) % j == 0) {` `                    ``flag = ``false``;``                    ``break``;``                ``}` `                ``temp /= 10;``            ``}` `            ``// If the digit j doesn't``            ``// divide any digit of arr[i]``            ``if` `(flag) {``                ``cout << j << ``' '``;``            ``}``        ``}` `        ``cout << endl;``    ``}``}` `// Driver Code``int` `main()``{``    ``int` `arr[] = { 4162, 1152, 99842 };``    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr);` `    ``indivisibleDigits(arr, N);` `    ``return` `0;``}`

## Java

 `// Java program for the above approach``import` `java.io.*;``import` `java.util.*;``class` `GFG``{` `  ``// Function to find digits for each array``  ``// element that doesn't divide any digit``  ``// of the that element``  ``static` `void` `indivisibleDigits(``int``[] arr, ``int` `N)``  ``{` `    ``// Traverse the array arr[]``    ``for` `(``int` `i = ``0``; i < N; i++)``    ``{``      ``System.out.print(arr[i] + ``": "``);` `      ``// Iterate over the range [2, 9]``      ``for` `(``int` `j = ``2``; j < ``10``; j++)``      ``{``        ``int` `temp = arr[i];` `        ``// Stores if there exists any digit``        ``// in arr[i] which is divisible by j``        ``boolean` `flag = ``true``;``        ``while` `(temp > ``0``) {` `          ``// If any digit of the number``          ``// is divisible by j``          ``if` `((temp % ``10``) != ``0``              ``&& (temp % ``10``) % j == ``0``) {` `            ``flag = ``false``;``            ``break``;``          ``}` `          ``temp /= ``10``;``        ``}` `        ``// If the digit j doesn't``        ``// divide any digit of arr[i]``        ``if` `(flag) {``          ``System.out.print(j + ``" "``);``        ``}``      ``}` `      ``System.out.println();``    ``}``  ``}`  `  ``// Driver Code``  ``public` `static` `void` `main(String[] args)``  ``{``    ``int``[] arr = { ``4162``, ``1152``, ``99842` `};``    ``int` `N = arr.length;` `    ``indivisibleDigits(arr, N);``  ``}``}` `// This code is contributed by sanjoy_62.`

## Python3

 `# Python3 program for the above approach` `# Function to find digits for each array``# element that doesn't divide any digit``# of the that element``def` `indivisibleDigits(arr, N) :``    ` `    ``# Traverse the array arr[]``    ``for` `i ``in` `range``(N):` `        ``num ``=` `0` `        ``print``(arr[i], end ``=` `' '``)` `        ``# Iterate over the range [2, 9]``        ``for` `j ``in` `range``(``2``, ``10``):` `            ``temp ``=` `arr[i]` `            ``# Stores if there exists any digit``            ``# in arr[i] which is divisible by j``            ``flag ``=` `True` `            ``while` `(temp > ``0``) :` `                ``# If any digit of the number``                ``# is divisible by j``                ``if` `((temp ``%` `10``) !``=` `0``                    ``and` `(temp ``%` `10``) ``%` `j ``=``=` `0``) :` `                    ``flag ``=` `False``                    ``break``                `  `                ``temp ``/``/``=` `10``            `  `            ``# If the digit j doesn't``            ``# divide any digit of arr[i]``            ``if` `(flag) :``                ``print``(j, end ``=` `' '``)` `        ``print``()``    ` `# Driver Code` `arr ``=` `[ ``4162``, ``1152``, ``99842` `]``N ``=` `len``(arr)` `indivisibleDigits(arr, N)` `# This code is contributed by susmitakundugoaldanga.`

## C#

 `// C# program for the above approach``using` `System;``class` `GFG``{` `  ``// Function to find digits for each array``  ``// element that doesn't divide any digit``  ``// of the that element``  ``static` `void` `indivisibleDigits(``int``[] arr, ``int` `N)``  ``{` `    ``// Traverse the array arr[]``    ``for` `(``int` `i = 0; i < N; i++)``    ``{``      ``Console.Write(arr[i] + ``": "``);` `      ``// Iterate over the range [2, 9]``      ``for` `(``int` `j = 2; j < 10; j++)``      ``{``        ``int` `temp = arr[i];` `        ``// Stores if there exists any digit``        ``// in arr[i] which is divisible by j``        ``bool` `flag = ``true``;``        ``while` `(temp > 0) {` `          ``// If any digit of the number``          ``// is divisible by j``          ``if` `((temp % 10) != 0``              ``&& (temp % 10) % j == 0) {` `            ``flag = ``false``;``            ``break``;``          ``}` `          ``temp /= 10;``        ``}` `        ``// If the digit j doesn't``        ``// divide any digit of arr[i]``        ``if` `(flag) {``          ``Console.Write(j + ``" "``);``        ``}``      ``}` `      ``Console.WriteLine();``    ``}``  ``}` `  ``// Driver Code``  ``public` `static` `void` `Main()``  ``{``    ``int``[] arr = { 4162, 1152, 99842 };``    ``int` `N = arr.Length;` `    ``indivisibleDigits(arr, N);``  ``}``}` `// This code is contributed by rishavmahato348.`

## Javascript

 ``

Output:

```4162: 5 7 8 9
1152: 3 4 6 7 8 9
99842: 5 6 7```

Time Complexity: O(10*N*log10N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up