Open in App
Not now

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

• Difficulty Level : Easy
• Last Updated : 03 Nov, 2021

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