forked from TheAlgorithms/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDudeneyNumber.java
More file actions
36 lines (31 loc) · 1.4 KB
/
DudeneyNumber.java
File metadata and controls
36 lines (31 loc) · 1.4 KB
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
/**
* 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 class DudeneyNumber {
// returns True if the number is a Dudeney number and False if it is not a Dudeney number.
public static boolean isDudeney(int n) {
// Calculating Cube Root
int cube_root = (int) (Math.round((Math.pow(n, 1.0 / 3.0))));
// If the number is not a perfect cube the method returns false.
if (cube_root * cube_root * cube_root != n) {
return false;
}
int sum_of_digits = 0; // Stores the sums of the digits of the entered number
int temp = n; // A temporary variable to store the entered number
// Loop to calculate the sum of the digits.
while (temp > 0) {
// Extracting the Last digit of the number
int rem = temp % 10;
// Calculating the sum of digits.
sum_of_digits += rem;
// Removing the last digit
temp /= 10;
}
// If the cube root of the number is not equal to the sum of its digits, we return false.
return cube_root == sum_of_digits;
}
}