Given three integers **A**, **B** and **N**, repeat the following process **N** times:

- Add a digit to
**A**such that after adding it,**A**is divisible by**B**. - Print the smallest value of
**A**possible after**N**iterations of above above operation. - Print
**-1**if the operation fails.

Note : We need to check divisibility after every digit addition.

**Examples:**

Input:A = 10, B = 11, N = 1Output:-1

No matter what digit you add, 10X will never be divisible by 11.

Input:A = 5, B = 3, N = 3Output:5100

**Approach:** Bruteforce for the first digit to be added from **0** to **9**, if none of the digits make **A** divisible by **B** then the answer is **-1**. Otherwise add the first digit that satisfies the condition and then add **0** after that **(n-1)** times because if **A** is divisible by **B** then **A*10, A*100, …** will also be divisible by **B**.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` ` ` `int` `addNDigits(` `int` `a, ` `int` `b, ` `int` `n)` `{` ` ` `int` `num = a;` ` ` ` ` `// Try all digits from (0 to 9)` ` ` `for` `(` `int` `i = 0; i <= 9; i++) {` ` ` `int` `tmp = a * 10 + i;` ` ` `if` `(tmp % b == 0) {` ` ` `a = tmp;` ` ` `break` `;` ` ` `}` ` ` `}` ` ` ` ` `// Fails in the first move itself` ` ` `if` `(num == a)` ` ` `return` `-1;` ` ` ` ` `// Add (n-1) 0's` ` ` `for` `(` `int` `j = 0; j < n - 1; j++)` ` ` `a *= 10;` ` ` ` ` `return` `a;` `}` ` ` `// Driver Program to test above function` `int` `main()` `{` ` ` `int` `a = 5, b = 3, n = 3;` ` ` `cout << addNDigits(a, b, n);` ` ` `return` `0;` `}` |

## Java

` ` `//Java implementation of the approach` ` ` `import` `java.io.*;` ` ` `class` `GFG {` ` ` ` ` `static` `int` `addNDigits(` `int` `a, ` `int` `b, ` `int` `n)` `{` ` ` `int` `num = a;` ` ` ` ` `// Try all digits from (0 to 9)` ` ` `for` `(` `int` `i = ` `0` `; i <= ` `9` `; i++) {` ` ` `int` `tmp = a * ` `10` `+ i;` ` ` `if` `(tmp % b == ` `0` `) {` ` ` `a = tmp;` ` ` `break` `;` ` ` `}` ` ` `}` ` ` ` ` `// Fails in the first move itself` ` ` `if` `(num == a)` ` ` `return` `-` `1` `;` ` ` ` ` `// Add (n-1) 0's` ` ` `for` `(` `int` `j = ` `0` `; j < n - ` `1` `; j++)` ` ` `a *= ` `10` `;` ` ` ` ` `return` `a;` `}` ` ` `// Driver Program to test above function` ` ` ` ` `public` `static` `void` `main (String[] args) {` ` ` `int` `a = ` `5` `, b = ` `3` `, n = ` `3` `;` ` ` `System.out.print( addNDigits(a, b, n));` ` ` `}` `}` `// This code is contributed by anuj_67..` |

## Python3

`# Python3 implementation of the approach` `def` `addNDigits(a, b, n) :` ` ` ` ` `num ` `=` `a` ` ` ` ` `# Try all digits from (0 to 9)` ` ` `for` `i ` `in` `range` `(` `10` `) :` ` ` `tmp ` `=` `a ` `*` `10` `+` `i` ` ` ` ` `if` `(tmp ` `%` `b ` `=` `=` `0` `) :` ` ` `a ` `=` `tmp` ` ` `break` ` ` ` ` `# Fails in the first move itself` ` ` `if` `(num ` `=` `=` `a) :` ` ` `return` `-` `1` ` ` ` ` `# Add (n-1) 0's` ` ` `for` `j ` `in` `range` `(n ` `-` `1` `) :` ` ` `a ` `*` `=` `10` ` ` ` ` `return` `a` ` ` `# Driver Code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` ` ` `a ` `=` `5` ` ` `b ` `=` `3` ` ` `n ` `=` `3` ` ` ` ` `print` `(addNDigits(a, b, n))` ` ` `# This code is contributed by Ryuga` |

## C#

`// C# implementation of the approach` `using` `System;` ` ` `class` `GFG ` `{` ` ` `static` `int` `addNDigits(` `int` `a, ` ` ` `int` `b, ` `int` `n)` `{` ` ` `int` `num = a;` ` ` ` ` `// Try all digits from (0 to 9)` ` ` `for` `(` `int` `i = 0; i <= 9; i++)` ` ` `{` ` ` `int` `tmp = a * 10 + i;` ` ` `if` `(tmp % b == 0) ` ` ` `{` ` ` `a = tmp;` ` ` `break` `;` ` ` `}` ` ` `}` ` ` ` ` `// Fails in the first move itself` ` ` `if` `(num == a)` ` ` `return` `-1;` ` ` ` ` `// Add (n-1) 0's` ` ` `for` `(` `int` `j = 0; j < n - 1; j++)` ` ` `a *= 10;` ` ` ` ` `return` `a;` `}` ` ` `// Driver Code` `public` `static` `void` `Main () ` `{` ` ` `int` `a = 5, b = 3, n = 3;` ` ` `Console.WriteLine(addNDigits(a, b, n));` `}` `}` ` ` `// This code is contributed ` `// by anuj_67..` |

## PHP

`<?php` `// PHP implementation of the approach` ` ` `function` `addNDigits(` `$a` `, ` `$b` `, ` `$n` `)` `{` ` ` `$num` `= ` `$a` `;` ` ` ` ` `// Try all digits from (0 to 9)` ` ` `for` `(` `$i` `= 0; ` `$i` `<= 9; ` `$i` `++) ` ` ` `{` ` ` `$tmp` `= ` `$a` `* 10 + ` `$i` `;` ` ` `if` `(` `$tmp` `% ` `$b` `== 0) ` ` ` `{` ` ` `$a` `= ` `$tmp` `;` ` ` `break` `;` ` ` `}` ` ` `}` ` ` ` ` `// Fails in the first move itself` ` ` `if` `(` `$num` `== ` `$a` `)` ` ` `return` `-1;` ` ` ` ` `// Add (n-1) 0's` ` ` `for` `(` `$j` `= 0; ` `$j` `< ` `$n` `- 1; ` `$j` `++)` ` ` `$a` `*= 10;` ` ` ` ` `return` `$a` `;` `}` ` ` `// Driver Code` `$a` `= 5; ` `$b` `= 3; ` `$n` `= 3;` `echo` `addNDigits(` `$a` `, ` `$b` `, ` `$n` `);` ` ` `// This code is contributed` `// by Akanksha Rai` |

**Output:**

5100

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**