mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-18 09:15:41 +08:00
29 lines
1.1 KiB
Java
29 lines
1.1 KiB
Java
/**
|
|
* A number is said to be Dudeney if the sum of the digits, is the cube root of the entered number.
|
|
* Example- Let the number be 512, its sum of digits is 5+1+2=8. The cube root of 512 is also 8.
|
|
* Since, the sum of the digits is equal to the cube root of the entered number;
|
|
* it is a Dudeney Number.
|
|
*/
|
|
package com.thealgorithms.maths;
|
|
|
|
public final class DudeneyNumber {
|
|
private DudeneyNumber() {
|
|
}
|
|
|
|
// returns True if the number is a Dudeney number and False if it is not a Dudeney number.
|
|
public static boolean isDudeney(final int n) {
|
|
if (n <= 0) {
|
|
throw new IllegalArgumentException("Input must me positive.");
|
|
}
|
|
// Calculating Cube Root
|
|
final int cubeRoot = (int) Math.round(Math.pow(n, 1.0 / 3.0));
|
|
// If the number is not a perfect cube the method returns false.
|
|
if (cubeRoot * cubeRoot * cubeRoot != n) {
|
|
return false;
|
|
}
|
|
|
|
// If the cube root of the number is not equal to the sum of its digits, we return false.
|
|
return cubeRoot == SumOfDigits.sumOfDigits(n);
|
|
}
|
|
}
|