// The cube root is a whole number. For example, 27 is a perfect cube, as ∛27 or (27)**1/3 = 3
package main
import (
"fmt"
"math"
)
func isPerfectCubeRoot(x int) bool {
x = int(math.Abs(float64(x)))
cubeRoot := int(math.Round(math.Pow(float64(x), 1.0/3.0)))
return math.Pow(float64(cubeRoot), 3) == float64(x)
}
func main() {
fmt.Println(isPerfectCubeRoot(16))
fmt.Println(isPerfectCubeRoot(64))
fmt.Println(isPerfectCubeRoot(27))
fmt.Println(isPerfectCubeRoot(25))
fmt.Println(isPerfectCubeRoot(-64))
fmt.Println(isPerfectCubeRoot(-27))
fmt.Println(isPerfectCubeRoot(729))
}
/*
run:
false
true
true
false
true
true
true
*/