Skip to content
Related Articles

Related Articles

Smallest N digit number divisible by all possible prime digits
  • Last Updated : 21 Aug, 2020

Given an integer N, the task is to find the smallest N digit number divisible by all possible prime digits, i.e, 2, 3, 5 and 7. Print -1 if no such number is possible.
Examples: 

Input: N = 5 
Output: 10080 
Explanation: 10080 is the smallest five-digit number that is divisible by 2, 3, 5 and 7.

Input: N = 3 
Output: 210

Approach: 
Follow the steps given below to solve the problem: 

  • Since all the four numbers 2, 3, 5, 7 are prime it means N will also be divisible by their product 2 × 3 × 5 × 7 = 210
  • For N < 3, no such number exists. So, print -1.
  • For N = 3, the answer will be 210.
  • For N > 3, the following computation needs to be done: 
    • Find Remainder R = 10N-1 % N.
    • Add 210 – R to 10N-1.

Below is the implementation of the above approach:



C++




// C++ implementation of the above approach  
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the minimum number of  
// n digits divisible by all prime digits 
void minNum(int n)
{
    if (n < 3)
        cout << -1;
    else
        cout << (210 * ((int)(pow(10, n - 1) /
                                   210) + 1));
}
  
// Driver Code
int main()
{
    int n = 5;
    minNum(n);
    return 0;
}
  
// This code is contributed by amal kumar choubey

Java




// Java implementation of the above approach
class GFG{
      
// Function to find the minimum number of 
// n digits divisible by all prime digits
static void minNum(int n)
{
    if(n < 3)
        System.out.println(-1);
    else
        System.out.println(210 * (
            (int)(Math.pow(10, n - 1) / 210) + 1));
}
  
// Driver code
public static void main(String[] args) 
{
    int n = 5;
    minNum(n);
}
}
  
// This code is contributed by Stuti Pathak

Python3




# Python3 implementation of the above approach 
from math import *
   
# Function to find the minimum number of 
# n digits divisible by all prime digits.
def minNum(n): 
    if n < 3:
        print(-1)
    else:
        print(210 * (10**(n-1) // 210 + 1))
   
# Driver Code 
n = 5
minNum(n)

C#




// C# implementation of the above approach
using System;
  
class GFG{
  
// Function to find the minimum number of
// n digits divisible by all prime digits
static void minNum(int n)
{
    if (n < 3)
        Console.WriteLine(-1);
    else
        Console.WriteLine(210 * 
           ((int)(Math.Pow(10, n - 1) / 210) + 1));
}
  
// Driver code
public static void Main(String[] args)
{
    int n = 5;
    minNum(n);
}
}
  
// This code is contributed by amal kumar choubey
Output: 
10080

Time complexity: O(logN) 
Auxiliary Space: O(1) 
 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :