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.
// CPP code to find smallest K-digit number // divisible by X #include <bits/stdc++.h> using namespace std;   // Function to compute the result int answer( int X, int K) {     // Computing MIN     int MIN = pow (10, K - 1);       // MIN is the result     if (MIN % X == 0)         return MIN;       // returning ans     return ((MIN + X) - ((MIN + X) % X)); }   // Driver int main() {     // Number whose divisible is to be found     int X = 83;       // Max K-digit divisible is to be found     int K = 5;       cout << answer(X, K); } |
10043
Please refer complete article on Smallest K digit number divisible by X for more details!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!