Open In App

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

Improve
Improve
Like Article
Like
Save
Share
Report

Given an integer N, the task is to find an N-digit number such that it is not divisible by any of its digits.
Note: There can be multiple answers for each value of N. 

Examples:  

Input: N = 4 
Output: 6789 
Explanation: 
As the number 6789 is not divisible by any of its digits, it is 6, 7, 8 and 9 and it is also a four-digit number. Hence, it can be the desired number. 

Input: N = 2 
Output: 57 
Explanation: 
As the number 57 is not divisible by any of its digits, it is 5 and 7 and it is also a 2-digit number. Hence, it can be the desired number.   

Approach: The key observation in the problem is that 2 and 3 are those numbers that don’t divide each other. Also, the numbers “23, 233, 2333, …” are not divisible by neither 2 nor 3. Hence, for any N-digit number, the most significant digit will be 2 and the rest of the digits will be 3 to get the desired number.

Algorithm:  

  • Check if the value of the N is equal to 1, then there is no such number is possible, hence return -1.
  • Otherwise, initialize a variable num, to store the number by 2.
  • Run a loop from 1 to N and then, for each iteration, multiply the number by 10 and add 3 to it. 
num = (num * 10) + 3 

Below is the implementation of the above approach: 

C++




// C++ implementation to find a
// N-digit number such that the number
// it is not divisible by its digits
 
#include <bits/stdc++.h>
using namespace std;
 
typedef long long int ll;
 
// Function to find the number
// such that it is not divisible
// by its digits
void solve(ll n)
{
    // Base Cases
    if (n == 1)
    {
        cout << -1;
    }
    else {
         
        // First Digit of the
        // number will be 2
        int num = 2;
         
        // Next digits of the numbers
        for (ll i = 0; i < n - 1; i++) {
            num = (num * 10) + 3;
        }
        cout << num;
    }
}
 
// Driver Code
int main()
{
    ll n = 4;
     
    // Function Call
    solve(n);
}


Java




// Java implementation to find a
// N-digit number such that the number
// it is not divisible by its digits
import java.io.*;
public class GFG {
 
    long ll;
     
    // Function to find the number
    // such that it is not divisible
    // by its digits
    static void solve(long n)
    {
        // Base Cases
        if (n == 1)
        {
            System.out.println(-1);
        }
        else {
             
            // First Digit of the
            // number will be 2
            int num = 2;
             
            // Next digits of the numbers
            for (long i = 0; i < n - 1; i++) {
                num = (num * 10) + 3;
            }
            System.out.println(num);
        }
    }
     
    // Driver Code
    public static void main (String[] args)
    {
        long n = 4;
         
            // Function Call
            solve(n);
    }
}
 
// This code is contributed by AnkitRai01


Python3




# Python3 implementation to find a
# N-digit number such that the number
# it is not divisible by its digits
 
# Function to find the number
# such that it is not divisible
# by its digits
def solve(n) :
 
    # Base Cases
    if (n == 1) :
 
        print(-1);
     
    else :
         
        # First Digit of the
        # number will be 2
        num = 2;
         
        # Next digits of the numbers
        for i in range(n - 1) :
            num = (num * 10) + 3;
          
        print(num);
 
# Driver Code
if __name__ == "__main__" :
 
    n = 4;
     
    # Function Call
    solve(n);
     
# This code is contributed by AnkitRai01


C#




// C# implementation to find a
// N-digit number such that the number
// it is not divisible by its digits
using System;
 
class GFG {
  
    long ll;
      
    // Function to find the number
    // such that it is not divisible
    // by its digits
    static void solve(long n)
    {
        // Base Cases
        if (n == 1)
        {
            Console.WriteLine(-1);
        }
        else {
              
            // First Digit of the
            // number will be 2
            int num = 2;
              
            // Next digits of the numbers
            for (long i = 0; i < n - 1; i++) {
                num = (num * 10) + 3;
            }
            Console.WriteLine(num);
        }
    }
      
    // Driver Code
    public static void Main(String[] args)
    {
        long n = 4;
          
            // Function Call
            solve(n);
    }
}
 
// This code is contributed by sapnasingh4991


Javascript




<script>
//Javascript  implementation to find a
// N-digit number such that the number
// it is not divisible by its digits
 
 
// Function to find the number
// such that it is not divisible
// by its digits
function solve(n)
{
    // Base Cases
    if (n == 1)
    {
        document.write(  -1);
    }
    else {
         
        // First Digit of the
        // number will be 2
        var num = 2;
         
        // Next digits of the numbers
        for (var i = 0; i < n - 1; i++) {
            num = (num * 10) + 3;
        }
        document.write(  num);
    }
}
 
 
// Given N
var n = 4;
// Function Call
solve(n);
 
// This code is contributed by SoumikMondal
</script>


Output: 

2333

 

Performance Analysis: 

  • Time Complexity: O(N).
  • Auxiliary Space: O(1).

 



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