Find a N-digit number such that it is not divisible by any of its digits - GeeksforGeeks

15 Nov, 2021
Given an integer N, the task is to find any N-digit positive number (except for zeros) such that it is not divisible by any of its digits. If it is not possible to find any such number then print -1.Note: There can be more than one such number for the same N-digit.Examples:  
Input: N = 2  
Output: 23
23 is not divisible by 2 or 3

Input: N = 3
Output: 239
 
Approach: The easiest solution to this problem can be thought of with the help of digits ‘4’ and ‘5’.  
Since, in order for a number to be divisible by 5, the number must end with 0 or 5; and in order for it to be divisible by 4, the last two digits if the number must be divisible by 4.Therefore, a shortcut method can be applied to prevent both of the divisibility criteria of 4 and as well as of 5, as: To prevent a number from being divisible by 5, the number can contain 5 for every other digit except for last digit.  
Since, in order for a number to be divisible by 5, the number must end with 0 or 5; and in order for it to be divisible by 4, the last two digits if the number must be divisible by 4.
Therefore, a shortcut method can be applied to prevent both of the divisibility criteria of 4 and as well as of 5, as: To prevent a number from being divisible by 5, the number can contain 5 for every other digit except for last digit.  
To prevent a number from being divisible by 5, the number can contain 5 for every other digit except for last digit.  
Therefore for N digit number,
(N - 1) digits must be 5 = 5555...(N-1 times)d
where d is the Nth digit
 
To prevent a number from being divisible by 4, the number can contain 5 at the second last digit and 4 at the last digit.  
Therefore for N digit number,
Last digit must be 4 = 5555...(N-1 times)4
Below is the implementation of the above approach:  
CPP
Java
Python3
C#
Javascript
// CPP program to find N digit number such// that it is not divisible by any of its digits  #include <bits/stdc++.h>using namespace std;  // Function that print the answervoid findTheNumber(int n){    // if n == 1 then it is    // not possible    if (n == 1) {        cout << "Impossible" << endl;        return;    }      // loop to n-1 times    for (int i = 0; i < n - 1; i++) {        cout << "5";    }      // print 4 as last digit of    // the number    cout << "4";}  // Driver codeint main(){    int n = 12;      // Function call    findTheNumber(n);      return 0;}
// JAVA program to find N digit number such// that it is not divisible by any of its digitsclass GFG{   // Function that print the answerstatic void findTheNumber(int n){    // if n == 1 then it is    // not possible    if (n == 1) {        System.out.print("Impossible" +"\n");        return;    }       // loop to n-1 times    for (int i = 0; i < n - 1; i++) {        System.out.print("5");    }       // print 4 as last digit of    // the number    System.out.print("4");}   // Driver codepublic static void main(String[] args){    int n = 12;       // Function call    findTheNumber(n);   }}  // This code is contributed by 29AjayKumar
# Python3 program to find N digit number such# that it is not divisible by any of its digits   # Function that print answerdef findTheNumber(n):    # if n == 1 then it is    # not possible    if (n == 1):        print("Impossible")        return       # loop to n-1 times    for i in range(n-1):        print("5",end="")       # print as last digit of    # the number    print("4")   # Driver codeif __name__ == '__main__':    n = 12       #Function call    findTheNumber(n)  # This code is contributed by mohit kumar 29
// C# program to find N digit number such// that it is not divisible by any of its digitsusing System;  class GFG{  // Function that print the answerstatic void findTheNumber(int n){    // if n == 1 then it is    // not possible    if (n == 1) {        Console.Write("Impossible" +"\n");        return;    }      // loop to n-1 times    for (int i = 0; i < n - 1; i++) {        Console.Write("5");    }      // print 4 as last digit of    // the number    Console.Write("4");}  // Driver codepublic static void Main(String[] args){    int n = 12;      // Function call    findTheNumber(n);}}  // This code is contributed by 29AjayKumar
<script>  // Javascript program to find N digit number such// that it is not divisible by any of its digits  // Function that print the answerfunction findTheNumber(n){    // if n == 1 then it is    // not possible    if (n == 1) {        document.write( "Impossible" );        return;    }      // loop to n-1 times    for (var i = 0; i < n - 1; i++) {        document.write( "5");    }      // print 4 as last digit of    // the number    document.write( "4");}  // Driver codevar n = 12;// Function callfindTheNumber(n);  // This code is contributed by rutvik_56.</script>
555555555554
 
Time complexity: 0(N) 
mohit kumar 29
29AjayKumar
rutvik_56
khushboogoyal499
Number Divisibility
number-digits
Analysis
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Understanding Time Complexity with Simple Examples
NP-Completeness | Set 1 (Introduction)
Time Complexity and Space Complexity
Cyclomatic Complexity
Time Complexity of building a heap
Program for Fibonacci numbers
Write a program to print all permutations of a given string
Set in C++ Standard Template Library (STL)
C++ Data Types
Coin Change | DP-7