65 lines
2.2 KiB
Java
65 lines
2.2 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 Maths;
|
||
|
|
||
|
import java.io.*;
|
||
|
|
||
|
|
||
|
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 digit of the entered number
|
||
|
int temp = n;//A temporary variable to store the entered number
|
||
|
// Loop to calculate sum of the digits.
|
||
|
while (temp > 0)
|
||
|
{
|
||
|
|
||
|
// Extracting Last digit of the number
|
||
|
int rem = temp % 10;
|
||
|
|
||
|
// Calculating 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.
|
||
|
if (cube_root != sum_of_digits)
|
||
|
return false;
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/** Method to check if number is Dudeney Number or Not
|
||
|
* 1) Input - Enter a Number: 512
|
||
|
* Output - It is a Dudeney Number.
|
||
|
* 2) Input - Enter a Number: 125
|
||
|
* Output - It is not a Dudeney Number.
|
||
|
*/
|
||
|
public static void main(String args[]) throws IOException
|
||
|
{
|
||
|
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
|
||
|
System.out.println("Enter a Number: ");
|
||
|
int n=Integer.parseInt(br.readLine());
|
||
|
if(isDudeney(n))
|
||
|
{
|
||
|
System.out.println("It is a Dudeney Number.");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
System.out.println("It is not a Dudeney Number.");
|
||
|
}
|
||
|
}
|
||
|
}
|