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.
filter_none

edit
close

play_arrow

link
brightness_4
code

// 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)>

chevron_right


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!

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

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.