public static int PerfectCubeRoot(int val)
        {
            int cubeRoot = (int)FloatUtils.CubeRoot(val);

            if (cubeRoot * cubeRoot * cubeRoot != val)
            {
                throw new Exception($"[{nameof(IntUtils)}] '{val}' has no perfect cube-root");
            }
            return(cubeRoot);
        }
        public static int?TryPerfectCubeRoot(int val)
        {
            int cubeRoot = (int)FloatUtils.CubeRoot(val);

            if (cubeRoot * cubeRoot * cubeRoot != val)
            {
                return(null);
            }
            return(cubeRoot);
        }