Given a two integers N and K, the task is to find the first M and last M digits of the number NK .
Input: N = 2345, K = 3, M = 3
Output: 128 625
2345 3 = 12895213625
Therefore, the first M(= 3) digits are 128 and the last three digits are 625.
Input: N = 12, K = 12, M = 4
Output: 8916 8256
12 12 = 8916100448256
The simplest approach to solve the problem is to calculate the value of NK and iterate to first M digits and find the last M digits by NK mod 10M.
Time Complexity: O(K)
Auxiliary Space: O(1)
The above approach can be optimized by the following observation:
Let us consider a number x which can be written as 10y Where y is a decimal number.
Let x = NK
NK = 10 y
Taking log10 on both sides of the above expression, we get:
K * log10(N) = log10(10 y)
=> K * log10(N) = y * (log1010)
=> y = K * log10(N)
Now y will be a decimal number of form abc—.xyz—
NK = 10abc—.xyz—
=> NK = 10abc— + 0.xyz—
=> NK = 10abc— * 100.xyz—
In the above equation, 10abc— only moves the decimal point forward.
By calculating 100.xyz—, the first M digits can be figured out by moving the decimal point forward.
Follow the steps below to solve the problem:
- Find the first M digits of NK by calculating (NK)mod(10M).
- Calculate K * log10(N).
- Calculate 10K * log10(N).
- Find the first M digits by calculating 10K * log10(N) * 10M – 1 .
- Print the first and last M digits obtained.
Below is the implementation of the above approach:
Time Complexity: O(log K)
Auxiliary Space: O(1)
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.
- Find last five digits of a given five digit number raised to power five
- Find the sum of power of bit count raised to the power B
- Sum of digits of a given number to a given power
- Number of digits in N factorial to the power N
- Print last k digits of a^b (a raised to power b)
- Number of digits in 2 raised to power n
- Find power of power under mod of a prime
- Find the average of k digits from the beginning and l digits from the end of the given number
- Program to find whether a no is power of two
- Find value of y mod (2 raised to power x)
- Find whether a given integer is a power of 3 or not
- Find whether a given number is a power of 4 or not
- Find the super power of a given Number
- Given two numbers as strings, find if one is a power of other
- Find smallest number with given number of digits and sum of digits under given constraints
- Find unit digit of x raised to power y
- Find multiple of x closest to or a ^ b (a raised to power b)
- Find the minimum number to be added to N to make it a power of K
- Find two numbers whose difference of fourth power is equal to N
- Find maximum power of a number that divides a factorial
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.