File tree Expand file tree Collapse file tree
main/java/com/thealgorithms/maths
test/java/com/thealgorithms/maths Expand file tree Collapse file tree Original file line number Diff line number Diff line change 55 */
66public class PerfectCube {
77
8- public static void main (String [] args ) {
9- assert !isPerfectCube (-1 );
10- assert isPerfectCube (0 );
11- assert isPerfectCube (1 );
12- assert !isPerfectCube (4 );
13- assert isPerfectCube (8 );
14- assert isPerfectCube (27 );
15- }
16-
178 /**
189 * Check if a number is perfect cube or not
1910 *
@@ -22,7 +13,20 @@ public static void main(String[] args) {
2213 * {@code false}
2314 */
2415 public static boolean isPerfectCube (int number ) {
16+ number = Math .abs (number ); // converting negative number to positive number
2517 int a = (int ) Math .pow (number , 1.0 / 3 );
2618 return a * a * a == number ;
2719 }
20+
21+ /**
22+ * Check if a number is perfect cube or not by using Math.cbrt function
23+ *
24+ * @param number number to check
25+ * @return {@code true} if {@code number} is perfect cube, otherwise
26+ * {@code false}
27+ */
28+ public static boolean isPerfectCubeMathCbrt (int number ) {
29+ double cubeRoot = Math .cbrt (number );
30+ return cubeRoot == (int ) cubeRoot ;
31+ }
2832}
Original file line number Diff line number Diff line change 1+ package com .thealgorithms .maths ;
2+
3+ import org .junit .jupiter .api .Assertions ;
4+ import org .junit .jupiter .api .Test ;
5+
6+ class PerfectCubeTest {
7+
8+ @ Test
9+ public void perfectCube () {
10+
11+ Assertions .assertTrue (PerfectCube .isPerfectCube (-27 ));
12+ Assertions .assertTrue (PerfectCube .isPerfectCubeMathCbrt (-27 ));
13+ Assertions .assertTrue (PerfectCube .isPerfectCube (-1 ));
14+ Assertions .assertTrue (PerfectCube .isPerfectCubeMathCbrt (-1 ));
15+ Assertions .assertTrue (PerfectCube .isPerfectCube (0 ));
16+ Assertions .assertTrue (PerfectCube .isPerfectCubeMathCbrt (0 ));
17+ Assertions .assertTrue (PerfectCube .isPerfectCube (1 ));
18+ Assertions .assertTrue (PerfectCube .isPerfectCubeMathCbrt (1 ));
19+ Assertions .assertTrue (PerfectCube .isPerfectCube (8 ));
20+ Assertions .assertTrue (PerfectCube .isPerfectCubeMathCbrt (8 ));
21+ Assertions .assertTrue (PerfectCube .isPerfectCube (27 ));
22+ Assertions .assertTrue (PerfectCube .isPerfectCubeMathCbrt (27 ));
23+
24+ Assertions .assertFalse (PerfectCube .isPerfectCube (-9 ));
25+ Assertions .assertFalse (PerfectCube .isPerfectCubeMathCbrt (-9 ));
26+ Assertions .assertFalse (PerfectCube .isPerfectCube (2 ));
27+ Assertions .assertFalse (PerfectCube .isPerfectCubeMathCbrt (2 ));
28+ Assertions .assertFalse (PerfectCube .isPerfectCube (4 ));
29+ Assertions .assertFalse (PerfectCube .isPerfectCubeMathCbrt (4 ));
30+ Assertions .assertFalse (PerfectCube .isPerfectCube (30 ));
31+ Assertions .assertFalse (PerfectCube .isPerfectCubeMathCbrt (30 ));
32+ }
33+ }
You can’t perform that action at this time.
0 commit comments