How to check whether a number is a perfect cube root in Go

1 Answer

0 votes
// 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

*/

 



answered Sep 2, 2024 by avibootz

Related questions

1 answer 126 views
1 answer 134 views
1 answer 166 views
1 answer 188 views
1 answer 128 views
...