Smallest N digit number divisible by all possible prime digits

• Last Updated : 23 Apr, 2021

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 using namespace std; // Function to find the minimum number of // n digits divisible by all prime digitsvoid minNum(int n){    if (n < 3)        cout << -1;    else        cout << (210 * ((int)(pow(10, n - 1) /                                   210) + 1));} // Driver Codeint main(){    int n = 5;    minNum(n);    return 0;} // This code is contributed by amal kumar choubey

Java

 // Java implementation of the above approachclass GFG{     // Function to find the minimum number of// n digits divisible by all prime digitsstatic 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 codepublic static void main(String[] args){    int n = 5;    minNum(n);}} // This code is contributed by Stuti Pathak

Python3

 # Python3 implementation of the above approachfrom 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 Coden = 5minNum(n)

C#

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

Javascript


Output:
10080

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

My Personal Notes arrow_drop_up