# Smallest number divisible by n and has at-least k trailing zeros

Two integers n and k are given. Our task is to print K-rounding of n. K-rounding is the minimum positive integer X, such that x ends with k or more zeros and is divisible by n.

Examples :

```Input :  n = 30, k = 3.
Output : 3000
3000 is the smallest number that
has at-least k 0s and is divisible
by n.

Input : n = 375, k = 4.
Output : 30000
```

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

Method 1 :
The brute force approach is to start with result = 10k. Check if result is divided by n. If yes, it’s the answer, else increase it by 10k

Method 2 : The efficient approach is to calculate the LCM of 10k and n.
Suppose, n = 375, k = 4.
result = 10000.
Now, LCM of 375 and 10000 is the lowest number divided by both of them.
It will contain k or more zeros (because it is multiple of 10k) and will be a multiple of n as well.

Below is the implementation :

## C++

 `// CPP code to print K-rounded value of n ` `#include ` `using` `namespace` `std; ` ` `  `// Function to compute the rounded value ` `long` `long` `getRounding(``long` `long` `n, ``long` `long` `k) ` `{ ` `    ``long` `long` `rounding = ``pow``(10, k); ` ` `  `    ``// Computing GCD ` `    ``long` `long` `result = __gcd(rounding, n); ` ` `  `    ``// Returning LCM (GCD * LCM = n * k) ` `    ``return` `((rounding * n) / result); ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` ` `  `    ``long` `long` `n = 375, k = 4; ` ` `  `    ``// Function call ` `    ``cout << getRounding(n, k); ` ` `  `    ``return` `0; ` `} `

## Java

 `// JAVA Code For Smallest number divisible by ` `// n and has at-least k trailing zeros ` `import` `java.util.*; ` ` `  `class` `GFG { ` `     `  `     ``// Function to find gcd ` `     ``static` `long` `gcd(``long` `a, ``long` `b) ` `        ``{ ` `            ``// Everything divides 0  ` `            ``if` `(a == ``0` `|| b == ``0``) ` `               ``return` `0``; ` `           `  `            ``// base case ` `            ``if` `(a == b) ` `                ``return` `a; ` `           `  `            ``// a is greater ` `            ``if` `(a > b) ` `                ``return` `gcd(a-b, b); ` `            ``return` `gcd(a, b-a); ` `        ``} ` ` `  `    ``// Function to compute the rounded value ` `    ``public` `static` `long` `getRounding(``long` `n, ``long` `k) ` `    ``{ ` `        ``long` `rounding = (``long``)Math.pow(``10``, k); ` `      `  `        ``// Computing GCD ` `        ``long` `result = gcd(rounding, n); ` `      `  `        ``// Returning LCM (GCD * LCM = n * k) ` `        ``return` `((rounding * n) / result); ` `    ``} ` `     `  `    ``/* Driver program to test above function */` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `        ``long` `n = ``375``, k = ``4``; ` `          `  `        ``// Function call ` `        ``System.out.println( getRounding(n, k)); ` `         `  `    ``} ` `} ` `   `  `// This code is contributed by Arnav Kr. Mandal. `

## Python3

 `# python Code For Smallest number  ` `# divisible by n and has ` `# at-least k trailing zeros ` ` `  `# Function to find gcd ` `def` `gcd(a, b): ` `     `  `    ``# Everything divides 0  ` `    ``if` `(a ``=``=` `0` `or` `b ``=``=` `0``): ` `        ``return` `0` `             `  `    ``# base case ` `    ``if` `(a ``=``=` `b): ` `        ``return` `a ` `             `  `    ``# a is greater ` `    ``if` `(a > b): ` `        ``return` `gcd(a ``-` `b, b) ` `         `  `    ``return` `gcd(a, b ``-` `a) ` `         `  `# Function to compute the  ` `# rounded value ` `def` `getRounding(n, k): ` `     `  `    ``rounding ``=` `pow``(``10``, k); ` ` `  `    ``# Computing GCD ` `    ``result ``=` `gcd(rounding, n) ` ` `  `    ``# Returning LCM (GCD * LCM ` `    ``# = n * k) ` `    ``return` `((rounding ``*` `n) ``/` `result) ` ` `  `# Driver Code ` ` `  `n ``=` `375` `k ``=` `4` ` `  `# Function call ` `print``( ``int``(getRounding(n, k))) ` ` `  `# This code is contributed by Sam007 `

## C#

 `// C# Code For Smallest number  ` `// divisible by n and has ` `// at-least k trailing zeros ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``// Function to find gcd ` `    ``static` `long` `gcd(``long` `a, ``long` `b) ` `        ``{ ` `             `  `            ``// Everything divides 0  ` `            ``if` `(a == 0 || b == 0) ` `            ``return` `0; ` `             `  `            ``// base case ` `            ``if` `(a == b) ` `                ``return` `a; ` `             `  `            ``// a is greater ` `            ``if` `(a > b) ` `                ``return` `gcd(a - b, b); ` `            ``return` `gcd(a, b - a); ` `        ``} ` ` `  `    ``// Function to compute the rounded value ` `    ``public` `static` `long` `getRounding(``long` `n, ``long` `k) ` `    ``{ ` `        ``long` `rounding = (``long``)Math.Pow(10, k); ` `     `  `        ``// Computing GCD ` `        ``long` `result = gcd(rounding, n); ` `     `  `        ``// Returning LCM (GCD * LCM = n * k) ` `        ``return` `((rounding * n) / result); ` `    ``} ` `     `  `    ``// Driver Code ` `    ``public` `static` `void` `Main()  ` `    ``{ ` `        ``long` `n = 375, k = 4; ` `         `  `        ``// Function call ` `        ``Console.Write( getRounding(n, k)); ` `         `  `    ``} ` `} ` `     `  `// This code is contributed by Nitin Mittal. `

## PHP

 ` ``\$b``) ` `        ``return` `gcd(``\$a` `- ``\$b``, ``\$b``); ` `    ``return` `gcd(``\$a``, ``\$b` `- ``\$a``); ` `} ` ` `  `// Function to compute  ` `// the rounded value ` `function` `getRounding(``\$n``, ``\$k``) ` `{ ` `    ``\$rounding` `= ``intval``(pow(10, ``\$k``)); ` ` `  `    ``// Computing GCD ` `    ``\$result` `= gcd(``\$rounding``, ``\$n``); ` ` `  `    ``// Returning LCM (GCD * LCM = n * k) ` `    ``return` `intval``((``\$rounding` `* ``\$n``) /  ` `                   ``\$result``); ` `} ` ` `  `// Driver code ` `\$n` `= 375; ` `\$k` `= 4; ` ` `  `// Function call ` `echo` `getRounding(``\$n``, ``\$k``); ` ` `  `// This code is contributed by Sam007 ` `?> `

Output :

```30000
```

This article is contributed by Rohit Thapliyal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Improved By : nitin mittal, Sam007

Article Tags :
Practice Tags :

Be the First to upvote.

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