Dudeney Number

/**
 * 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;

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.");
        }
    }
}
Algerlogo

Β© Alger 2022

About us

We are a group of programmers helping each other build new things, whether it be writing complex encryption programs, or simple ciphers. Our goal is to work together to document and model beautiful, helpful and interesting algorithms using code. We are an open-source community - anyone can contribute. We check each other's work, communicate and collaborate to solve problems. We strive to be welcoming, respectful, yet make sure that our code follows the latest programming guidelines.