Problem Statement

A number is called a perfect power if it can be written in the form m^k, where m and k are positive integers, and k > 1.

Given two positive integers A and B, find the two perfect powers between A and B, inclusive, that are closest to each other, and return the absolute difference between them. If less than two perfect powers exist in the interval, return -1 instead.

Definition

 Class: PerfectPowers Method: nearestCouple Parameters: long, long Returns: long Method signature: long nearestCouple(long A, long B) (be sure your method is public)

Notes

-1 is a perfect power.

Constraints

-A will be between 1 and 10^18, inclusive.
-B will be between A+1 and 10^18, inclusive.

Examples

0)

 1 4
Returns: 3
 1 and 4 are the first pair of perfect powers.
1)

 8 9
Returns: 1
 8 and 9 are the closest pair of perfect powers.
2)

 10 15
Returns: -1
 No pair of perfect powers is present in the interval.
3)

 1 1000000000000000000
Returns: 1
 This is the largest possible range, and 8 and 9 are the closest pair of perfect powers.
4)

 80000 90000
Returns: 80

Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=8774

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=13764&pm=8774

mohamedafattah

Testers:

PabloGilberto , Yarin , ivan_metelsky

Problem categories:

Search, Simple Math, Sorting