Java Program for Smallest K digit number divisible by X

Integers X and K are given. The task is to find the smallest K-digit number divisible by X.

Examples:

Input : X = 83, K = 5
Output : 10043
10040 is the smallest 5 digit
number that is multiple of 83.

Input : X = 5, K = 2
Output : 10

An efficient solution would be :

Compute MIN : smallest K-digit number (1000...K-times)
If, MIN % X is 0, ans = MIN
else, ans = (MIN + X) - ((MIN + X) % X))
This is because there will be a number in
range [MIN...MIN+X] divisible by X.

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

 // Java code to find smallest K-digit // number divisible by X    import java.io.*; import java.lang.*;    class GFG {     public static double answer(double X, double K)     {         double i = 10;         // Computing MIN         double MIN = Math.pow(i, K - 1);            // returning ans         if (MIN % X == 0)             return (MIN);         else             return ((MIN + X) - ((MIN + X) % X));     }        public static void main(String[] args)     {            // Number whose divisible is to be found         double X = 83;         double K = 5;            System.out.println((int)answer(X, K));     } }    // Code contributed by Mohit Gupta_OMG <(0_o)>

Output:

10043

To understand Math.pow() function, please refer point 18 of the article :
https://www.geeksforgeeks.org/java-lang-math-class-java-set-2/

Please refer complete article on Smallest K digit number divisible by X for more details!

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.