C++ 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.

`// 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);` `}` |

**Output:**

10043

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

Want to learn from the best curated videos and practice problems, check out the

**C++ Foundation Course**for Basic to Advanced C++ and**C++ STL Course**for foundation plus STL.