Open In App
Related Articles
• Write an Interview Experience
• Mathematical Algorithms

# 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 ``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

 ``

## Javascript

 ``

Output :

```142
0476```

Time Complexity: O(k)

Auxiliary Space: O(1)

Reference:
Algorithms And Programming: Problems And Solutions by Alexander Shen