# Pair of integers having difference of their fifth power as X

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
Explanation:

Input: N = 211
Output: -2 -3
Explanation:

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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:

 `// C++ implementation to find a pair ` `// of integers A & B such that ` `// difference of fifth power is ` `// equal to the given number X ` ` `  `#include ` `using` `namespace` `std; ` ` `  `// Function to find a pair ` `// of integers A & B such that ` `// difference of fifth power is ` `// equal to the given number X ` `void` `findPair(``int` `x) ` `{ ` `    ``int` `lim = 120; ` ` `  `    ``// Loop to choose every possible ` `    ``// pair with in the range ` `    ``for` `(``int` `i = -lim; i <= lim; i++) { ` `        ``for` `(``int` `j = -lim; j <= lim; j++) { ` ` `  `            ``// Check if equation holds ` `            ``if` `(``pow``(i, 5) - ``pow``(j, 5) == x) { ` `                ``cout << i << ``' '` `<< j << endl; ` `                ``return``; ` `            ``} ` `        ``} ` `    ``} ` `    ``cout << ``"-1"``; ` `} ` ` `  `// Driver Code ` `signed` `main() ` `{ ` `    ``int` `X = 33; ` ` `  `    ``// Function Call ` `    ``findPair(X); ` `    ``return` `0; ` `} `

 `// Java implementation to find a  ` `// pair of integers A & B such  ` `// that difference of fifth power  ` `// is equal to the given number X ` `class` `GFG{ ` ` `  `// Function to find a pair ` `// of integers A & B such that ` `// difference of fifth power is ` `// equal to the given number X ` `static` `void` `findPair(``int` `x) ` `{ ` `    ``int` `lim = ``120``; ` ` `  `    ``// Loop to choose every possible ` `    ``// pair with in the range ` `    ``for``(``int` `i = -lim; i <= lim; i++) ` `    ``{ ` `       ``for``(``int` `j = -lim; j <= lim; j++) ` `       ``{ ` `            `  `          ``// Check if equation holds ` `          ``if` `(Math.pow(i, ``5``) -  ` `              ``Math.pow(j, ``5``) == x) ` `          ``{ ` `              ``System.out.print(i + ``" "` `+ ` `                               ``j + ``"\n"``); ` `              ``return``; ` `          ``} ` `       ``} ` `    ``} ` `    ``System.out.print(``"-1"``); ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `X = ``33``; ` ` `  `    ``// Function Call ` `    ``findPair(X); ` `} ` `} ` ` `  `// This code is contributed by PrinciRaj1992 `

 `# Python3 implementation to find   ` `# a pair of integers A & B such   ` `# that difference of fifth power  ` `# is equal to the given number X  ` `import` `math ` ` `  `# Function to find a pair  ` `# of integers A & B such that  ` `# difference of fifth power is  ` `# equal to the given number X  ` `def` `findPair(x):  ` ` `  `    ``lim ``=` `120` ` `  `    ``# Loop to choose every possible  ` `    ``# pair with in the range  ` `    ``for` `i ``in` `range``(``-``lim, lim ``+` `1``): ` `        ``for` `j ``in` `range``(``-``lim, lim ``+` `1``): ` `             `  `            ``# Check if equation holds  ` `            ``if` `(math.``pow``(i, ``5``) ``-`  `                ``math.``pow``(j, ``5``) ``=``=` `x):  ` `                ``print` `(i, end ``=` `' '``)  ` `                ``print` `(j, end ``=` `'\n'``) ` `                ``return` `     `  `    ``print` `(``"-1"``)  ` ` `  `# Driver Code  ` `X ``=` `33` ` `  `# Function Call  ` `findPair(X) ` ` `  `# This code is contributed by PratikBasu `

 `// C# implementation to find a  ` `// pair of integers A & B such  ` `// that difference of fifth power  ` `// is equal to the given number X ` `using` `System; ` ` `  `class` `GFG{ ` ` `  `// Function to find a pair of  ` `// integers A & B such that ` `// difference of fifth power is ` `// equal to the given number X ` `static` `void` `findPair(``int` `x) ` `{ ` `    ``int` `lim = 120; ` ` `  `    ``// Loop to choose every possible ` `    ``// pair with in the range ` `    ``for``(``int` `i = -lim; i <= lim; i++) ` `    ``{ ` `       ``for``(``int` `j = -lim; j <= lim; j++) ` `       ``{ ` `           `  `          ``// Check if equation holds ` `          ``if` `(Math.Pow(i, 5) -  ` `              ``Math.Pow(j, 5) == x) ` `          ``{ ` `              ``Console.Write(i + ``" "` `+ ` `                            ``j + ``"\n"``); ` `              ``return``; ` `          ``} ` `       ``} ` `    ``} ` `    ``Console.Write(``"-1"``); ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``int` `X = 33; ` ` `  `    ``// Function call ` `    ``findPair(X); ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

Output:
```1 -2
```

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.

Article Tags :
Practice Tags :