# Find Nth smallest number that is divisible by 100 exactly K times

• Last Updated : 31 May, 2022

Given two numbers N and K . The task is to find N’th smallest number that is divided by 100 exactly K times.
Examples:

Input : N = 12, K = 2
Output : 120000
120000 is divisible by 100 exactly 2 times and
is the 12 th smallest number also.
Input : N = 1000, K = 2
Output : 10010000

Approach:

• First, find the smallest number that is divisible by 100 exactly K times. That is 2*K 0’s after 1 as 100 has two 0’s only.
• To find N’th smallest number, multiply N with the previous number we get after adding 2*k 0’s.
• Consider a case when N is divisible by 100 as if we multiply N with the previous number then the new number will have more than (2*k + 1) trailing 0’s that means it will divisible by 100 more than K times.
• Multiply that number with (N + 1). Use string as N and K can be very large that will not fit in integer limit.

Below is the implementation of above approach:

## C++

 `// C++ implementation of above approach``#include ``using` `namespace` `std;` `// Function to find the Nth smallest number``string find_number(``int` `N, ``int` `K)``{``    ``string r;` `    ``// If N is divisible by 100 then we``    ``// multiply N + 1 otherwise, it will be``    ``// divisible by 100 more than K times``    ``if` `(N % 100 == 0) {``        ``N += 1;` `        ``// convert integer to string``        ``r = to_string(N);``    ``}` `    ``// if N is not divisible by 100``    ``else` `{``        ``// convert integer to string``        ``r = to_string(N);``    ``}` `    ``// add 2*K 0's at the end to be divisible``    ``// by 100 exactly K times``    ``for` `(``int` `i = 1; i <= K; i++)``        ``r += ``"00"``;` `    ``return` `r;``}` `// Driver Code``int` `main()``{``    ``int` `N = 1000, K = 2;``    ``string ans = find_number(N, K);``    ``cout << ans << ``"\n"``;` `    ``return` `0;``}`

## Java

 `// Java implementation of above approach``import` `java.util.*;` `class` `GFG``{` `// Function to find the Nth smallest number``static` `String find_number(``int` `N, ``int` `K)``{``    ``String r;` `    ``// If N is divisible by 100 then we``    ``// multiply N + 1 otherwise, it will be``    ``// divisible by 100 more than K times``    ``if` `(N % ``100` `== ``0``)``    ``{``        ``N += ``1``;` `        ``// convert integer to string``        ``r = String.valueOf(N);``    ``}` `    ``// if N is not divisible by 100``    ``else``    ``{``        ``// convert integer to string``        ``r = String.valueOf(N);``    ``}` `    ``// add 2*K 0's at the end to be divisible``    ``// by 100 exactly K times``    ``for` `(``int` `i = ``1``; i <= K; i++)``        ``r += ``"00"``;` `    ``return` `r;``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``    ``int` `N = ``1000``, K = ``2``;``    ``String ans = find_number(N, K);``    ``System.out.println(ans);``}``}` `/* This code is contributed by PrinciRaj1992 */`

## Python3

 `# Python3 implementation of above approach` `# Function to find the Nth smallest number``def` `find_number(N, K):``    ` `    ``r ``=` `""` `    ``# If N is divisible by 100 then we``    ``# multiply N + 1 otherwise, it will be``    ``# divisible by 100 more than K times``    ``if` `(N ``%` `100` `=``=` `0``):``        ``N ``+``=` `1``;` `        ``# convert integer to string``        ``r ``=` `str``(N)` `    ``# if N is not divisible by 100``    ``else``:``        ` `        ``# convert integer to string``        ``r ``=` `str``(N)` `    ``# add 2*K 0's at the end to be divisible``    ``# by 100 exactly K times``    ``for` `i ``in` `range``(``1``, K ``+` `1``):``        ``r ``+``=` `"00"` `    ``return` `r` `# Driver Code``N ``=` `1000``K ``=` `2``;``ans ``=` `find_number(N, K)``print``(ans)` `# This code is contributed by Mohit Kumar`

## C#

 `// C# implementation of the approach``using` `System;``    ` `class` `GFG``{` `// Function to find the Nth smallest number``static` `String find_number(``int` `N, ``int` `K)``{``    ``String r;` `    ``// If N is divisible by 100 then we``    ``// multiply N + 1 otherwise, it will be``    ``// divisible by 100 more than K times``    ``if` `(N % 100 == 0)``    ``{``        ``N += 1;` `        ``// convert integer to string``        ``r = N.ToString();``    ``}` `    ``// if N is not divisible by 100``    ``else``    ``{``        ``// convert integer to string``        ``r = N.ToString();``    ``}` `    ``// add 2*K 0's at the end to be divisible``    ``// by 100 exactly K times``    ``for` `(``int` `i = 1; i <= K; i++)``        ``r += ``"00"``;` `    ``return` `r;``}` `// Driver Code``public` `static` `void` `Main(String[] args)``{``    ``int` `N = 1000, K = 2;``    ``String ans = find_number(N, K);``    ``Console.WriteLine(ans);``}``}` `// This code is contributed by Rajput-Ji`

## Javascript

 ``

Output:

`10010000`

Time Complexity: O(K)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up