Smallest N digit number divisible by all possible prime digits
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++
#include <bits/stdc++.h>
using namespace std;
void minNum( int n)
{
if (n < 3)
cout << -1;
else
cout << (210 * (( int )( pow (10, n - 1) /
210) + 1));
}
int main()
{
int n = 5;
minNum(n);
return 0;
}
|
Java
class GFG{
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 ));
}
public static void main(String[] args)
{
int n = 5 ;
minNum(n);
}
}
|
Python3
from math import *
def minNum(n):
if n < 3 :
print ( - 1 )
else :
print ( 210 * ( 10 * * (n - 1 ) / / 210 + 1 ))
n = 5
minNum(n)
|
C#
using System;
class GFG{
static void minNum( int n)
{
if (n < 3)
Console.WriteLine(-1);
else
Console.WriteLine(210 *
(( int )(Math.Pow(10, n - 1) / 210) + 1));
}
public static void Main(String[] args)
{
int n = 5;
minNum(n);
}
}
|
Javascript
<script>
function minNum(n)
{
if (n < 3)
document.write( -1);
else
document.write((210 * (parseInt(Math.pow(10, n - 1) /
210) + 1)));
}
var n = 5;
minNum(n);
</script>
|
Time complexity: O(logN)
Auxiliary Space: O(1)
Last Updated :
23 Apr, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...