File tree 2 files changed +46
-9
lines changed
main/java/com/thealgorithms/maths
test/java/com/thealgorithms/maths
2 files changed +46
-9
lines changed Original file line number Diff line number Diff line change 5
5
*/
6
6
public class PerfectCube {
7
7
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
-
17
8
/**
18
9
* Check if a number is perfect cube or not
19
10
*
@@ -22,7 +13,20 @@ public static void main(String[] args) {
22
13
* {@code false}
23
14
*/
24
15
public static boolean isPerfectCube (int number ) {
16
+ number = Math .abs (number ); // converting negative number to positive number
25
17
int a = (int ) Math .pow (number , 1.0 / 3 );
26
18
return a * a * a == number ;
27
19
}
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
+ }
28
32
}
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