forked from TheAlgorithms/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPerfectCube.java
43 lines (39 loc) · 1.14 KB
/
PerfectCube.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.thealgorithms.maths;
/**
* https://en.wikipedia.org/wiki/Cube_(algebra)
*/
public final class PerfectCube {
private PerfectCube() {
}
/**
* Get cuberoot of a number
*
* @param number number to get cube root of
*/
public static int getCubeRoot(int number) {
number = Math.abs(number); // converting negative number to positive number
return (int) Math.pow(number, 1.0 / 3);
}
/**
* Check if a number is perfect cube or not
*
* @param number number to check
* @return {@code true} if {@code number} is perfect cube, otherwise
* {@code false}
*/
public static boolean isPerfectCube(int number) {
int a = getCubeRoot(number);
return a * a * a == number;
}
/**
* Check if a number is perfect cube or not by using Math.cbrt function
*
* @param number number to check
* @return {@code true} if {@code number} is perfect cube, otherwise
* {@code false}
*/
public static boolean isPerfectCubeMathCbrt(int number) {
double cubeRoot = Math.cbrt(number);
return cubeRoot == (int) cubeRoot;
}
}