Computer Science, asked by monalidey810, 5 months ago

write a java program to calculate the special no​

Answers

Answered by namratapanda11
12

Explanation:

refer the attachment

hope it helps

Attachments:
Answered by venkatalakshmi0501
3

Special Number Program In Java With Examples

In this post I will be sharing what is Special number, examples of Special number, algorithm and java program to check whether a given number is Special number or not.

Special number is also known as Krishnamurthy number and Strong number.

Read Also : Happy Number Program in Java

What is Special Number

A number is known as Special number when sum of the factorial of digits is equal to the original number (given number).

Examples:

Below are examples of numbers which are Special

Number to check : 145

1! + 4! + 5! = 1 + 24 + 120 = 145 // 145 is a Special Number

Number to check : 2

2! = 2 = 2 // 2 is a Special Number

Below are examples of numbers which are NOT Special number

Number to check : 35

3! + 5! = 6 + 120 = 126 // 35 is NOT a Special Number

Number to check : 105

1! + 0! + 5! = 1 + 1 + 120 = 122 // 105 is NOT a Special Number

Read Also : Disarium Number Program in Java

Java Program for Special Number

import java.util.*;

public class JavaHungry {

public static void main(String args[]) {

System.out.println("Enter any number : ");

Scanner scan = new Scanner(System.in);

int inputNumber = scan.nextInt();

boolean result = specialnumber(inputNumber);

if (result == true)

System.out.println(inputNumber + " is a Special number");

if (result == false)

System.out.println(inputNumber + " is NOT a Special number");

}

public static boolean specialnumber(int inputNumber) {

// Create a copy of the inputNumber

int temp = inputNumber;

// Initialize sumOfDigits of inputNumber

int sumOfDigits = 0;

/* Calculate the sum of factorial of

digits */

while (temp != 0) {

// Get the rightmost digit

int currentDigit = temp % 10;

sumOfDigits = sumOfDigits + factorial(currentDigit);

temp = temp/10;

}

/* If sumOfDigits is equal to inputNumber then

the number is Special, otherwise not */

return (sumOfDigits == inputNumber);

}

public static int factorial(int number) {

if (number == 1 || number == 0)

return 1;

else

return (number * factorial(number -1));

}

}

Output :

Enter any number : 145

145 is a Special number

Algorithm for Special Number

1. Create a copy of the inputNumber (original number) by storing its value in variable temp.

2. Initialize sumOfDigits variable value to 0. It will represent the sum of factorial of digits.

3. Using while loop

a. Get the rightmost digit of variable temp by using (temp %10). Store its value in variable currentDigit.

b. Calculate the factorial of the currentDigit .

c. add the value of factorial method to sumOfDigits variable.

4. Check whether the variable sumOfDigits is equal to inputNumber (original number).

a. If both are equal then the inputNumber is Special.

b. Otherwise, the inputNumber is not a Special number.

That's all for the day, please mention in comments if you know any other way to implement Special number program in java.

I hope it helps you plzzz mark me has a brainliest

Similar questions