# Print first k digits of 1/n where n is a positive integer

Given a positive integer n, print first k digits after point in value of 1/n. Your program should avoid overflow and floating point arithmetic.**Examples :**

Input: n = 3, k = 3 Output: 333 Input: n = 50, k = 4 Output: 0200

**We strongly recommend to minimize the browser and try this yourself first.**

Let us consider an example n = 7, k = 3. The first digit of 1/7 is ‘1’, it can be obtained by doing integer value of 10/7. Remainder of 10/7 is 3. Next digit is 4 which can be obtained by taking integer value of 30/7. Remainder of 30/7 is 2. Next digits is 2 which can be obtained by taking integer value of 20/7

## C++

`#include <iostream>` `using` `namespace` `std;` `// Function to print first k digits after dot in value` `// of 1/n. n is assumed to be a positive integer.` `void` `print(` `int` `n, ` `int` `k)` `{` ` ` `int` `rem = 1; ` `// Initialize remainder` ` ` `// Run a loop k times to print k digits` ` ` `for` `(` `int` `i = 0; i < k; i++)` ` ` `{` ` ` `// The next digit can always be obtained as` ` ` `// doing (10*rem)/10` ` ` `cout << (10 * rem) / n;` ` ` `// Update remainder` ` ` `rem = (10*rem) % n;` ` ` `}` `}` `// Driver program to test above function` `int` `main()` `{` ` ` `int` `n = 7, k = 3;` ` ` `print(n, k);` ` ` `cout << endl;` ` ` `n = 21, k = 4;` ` ` `print(n, k);` ` ` `return` `0;` `}` |

## Java

`// Java code to Print first k` `// digits of 1/n where n is a` `// positive integer` `import` `java.io.*;` `class` `GFG` `{` ` ` `// Function to print first` ` ` `// k digits after dot in value` ` ` `// of 1/n. n is assumed to be` ` ` `// a positive integer.` ` ` `static` `void` `print(` `int` `n, ` `int` `k)` ` ` `{` ` ` `// Initialize remainder` ` ` `int` `rem = ` `1` `;` ` ` ` ` `// Run a loop k times to print k digits` ` ` `for` `(` `int` `i = ` `0` `; i < k; i++)` ` ` `{` ` ` `// The next digit can always be` ` ` `// obtained as doing (10*rem)/10` ` ` `System.out.print( (` `10` `* rem) / n);` ` ` `// Update remainder` ` ` `rem = (` `10` `* rem) % n;` ` ` ` ` `}` ` ` ` ` `}` ` ` ` ` `// Driver program` ` ` `public` `static` `void` `main(String []args)` ` ` `{` ` ` `int` `n = ` `7` `, k = ` `3` `;` ` ` `print(n, k);` ` ` `System.out.println();` ` ` ` ` `n = ` `21` `;` ` ` `k = ` `4` `;` ` ` `print(n, k);` ` ` ` ` `}` `}` `// This article is contributed by vt_m` |

## Python3

`# Python code to Print first k` `# digits of 1/n where n is a` `# positive integer` `import` `math` `# Function to print first k digits` `# after dot in value of 1/n. n is` `# assumed to be a positive integer.` `def` `Print` `(n, k):` ` ` `rem ` `=` `1` `# Initialize remainder` ` ` ` ` `# Run a loop k times to print` ` ` `# k digits` ` ` `for` `i ` `in` `range` `(` `0` `, k):` ` ` `# The next digit can always` ` ` `# be obtained as doing` ` ` `# (10*rem)/10` ` ` `print` `(math.floor(((` `10` `*` `rem)` ` ` `/` `n)), end` `=` `"")` ` ` ` ` `# Update remainder` ` ` `rem ` `=` `(` `10` `*` `rem) ` `%` `n` `# Driver program to test` `# above function` `n ` `=` `7` `k ` `=` `3` `Print` `(n, k);` `print` `(` `" "` `)` `n ` `=` `21` `k ` `=` `4` `Print` `(n, k);` `# This code is contributed by Sam007.` |

## C#

`// C# code to Print first k digits of` `// 1/n where n is a positive integer` `using` `System;` `class` `GFG {` ` ` ` ` `// Function to print first` ` ` `// k digits after dot in value` ` ` `// of 1/n. n is assumed to be` ` ` `// a positive integer.` ` ` `static` `void` `print(` `int` `n, ` `int` `k)` ` ` `{` ` ` ` ` `// Initialize remainder` ` ` `int` `rem = 1;` ` ` ` ` `// Run a loop k times to` ` ` `// print k digits` ` ` `for` `(` `int` `i = 0; i < k; i++)` ` ` `{` ` ` ` ` `// The next digit can always be` ` ` `// obtained as doing (10*rem)/10` ` ` `Console.Write( (10 * rem) / n);` ` ` `// Update remainder` ` ` `rem = (10 * rem) % n;` ` ` `}` ` ` `}` ` ` ` ` `// Driver program` ` ` `public` `static` `void` `Main()` ` ` `{` ` ` `int` `n = 7, k = 3;` ` ` `print(n, k);` ` ` `Console.WriteLine();` ` ` ` ` `n = 21;` ` ` `k = 4;` ` ` `print(n, k);` ` ` `}` `}` `// This code is contributed by Sam007.` |

## PHP

`<?php` `// Function to print first k digits` `// after dot in value of 1/n. n is` `// assumed to be a positive integer.` `function` `println(` `$n` `, ` `$k` `)` `{` ` ` `// Initialize remainder` ` ` `$rem` `= 1;` `// Run a loop k times` `// to print k digits` `for` `(` `$i` `= 0; ` `$i` `< ` `$k` `; ` `$i` `++)` `{` ` ` `// The next digit can always` ` ` `// be obtained as doing` ` ` `// (10 * rem) / 10` ` ` `echo` `floor` `((10 * ` `$rem` `) / ` `$n` `);` ` ` `// Update remainder` ` ` `$rem` `= (10 * ` `$rem` `) % ` `$n` `;` `}` `}` `// Driver Code` `$n` `= 7; ` `$k` `= 3;` `println(` `$n` `, ` `$k` `);` `echo` `"\n"` `;` `$n` `= 21; ` `$k` `= 4;` `println(` `$n` `, ` `$k` `);` `// This code is contributed by aj_36` `?>` |

## Javascript

`<script>` `// Function to print first k digits after dot in value` `// of 1/n. n is assumed to be a positive integer.` `function` `print(n, k)` `{` ` ` `let rem = 1; ` `// Initialize remainder` ` ` `let ans = ` `''` `;` ` ` `// Run a loop k times to print k digits` ` ` `for` `(let i = 0; i < k; i++)` ` ` `{` ` ` `// The next digit can always be obtained as` ` ` `// doing (10*rem)/10` ` ` `ans += Math.floor(((10 * rem) / n));` ` ` `// Update remainder` ` ` `rem = (10*rem) % n;` ` ` `}` ` ` `document.write(ans)` `}` `// Driver program to test above function` `let n = 7;` `let k = 3;` `print(n, k);` `document.write(` `"<br>"` `);` `n = 21;` `k = 4;` `print(n, k);` `</script>` |

**Output :**

142 0476

**Reference:**

Algorithms And Programming: Problems And Solutions by Alexander Shen

This article is contributed by **Sachin**. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

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. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.