Given an integer X, the task is to find a pair A and B such that their difference of fifth power is X, i.e., A5 – B5 = X. If there is no such pair print “Not Possible”.
Input: X = 33
Output: 1 -2
Input: N = 211
Output: -2 -3
Naive Approach: A simple solution is to use two for loops, one for A and one for B, ranging from -109 to 109.
Efficient Approach: The idea is to narrow down the range of A and B using mathematical techniques.
Since A5 – B5 = X => A5 = X + B5. For A to be as high as possible, B also has to be as high as possible, as it is evident from the inequality.
Consider A = N and B = N – 1
=> N5 – (N – 1)5 = X.
By binomial expansion, we know
(p + 1)yp <= (y + 1)p+1 – yp+1 <= (p+1)(y+1)p
So we can say that the maximum value of LHS is 4N4.
Hence 4N5 <= X
=> N <= (X/5)1/5.
=> This gives us N ~ 120.
Since A and B can also be negative, we simply extrapolate the range and the final range we get is [-120, 120].
Below is the implementation of the above approach:
Time Complexity: O(240*240)
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.