Introduction to Special Number in Java
Special Numbers in Java are ones whose sum of factorials of digits is equal to the number itself. It can be an N digit number. The program has to first break the number into its corresponding digits and calculate their factorials. Once that is done, the sum of the individual calculated factorials should be added. If the sum matches the original number then the number is called to be a Special number. When the program is running, the digits and their factorials are calculated using a modulus concept and Math.fact() which calculates the factorial of each number. In this article, we are going to check up till 4 digit numbers which are Special Numbers or not.
Mathematically, we have to show how the working of the sum of factorials of individual digits of a number is matched with the original number. One such example of a number is 145.
145= 1! +4! +5!
In this article, we will also be going to see the working and another such Special numbers which can be either 2 or 3 digit numbers. Java has many platforms on which this program can be run. In this article, we are going to check the working of the program on the BlueJ platform. There are four special numbers which are present which are known to us. 1,2, 145 and 40585.
Examples of Special Number in Java
In this program, we are going to enter a number and check if the number is Special or not. We are indirectly checking the sum of factorials of the digits is equal to the original number or not.
Example #1
Code:
//Java program to check if a number
// is a special number
import java.util.*;
import java.io.*;
class Special
{
// function to calculate the factorial
// of any number using while loop
static int factorial(int n)
{
int fact = 1;
while (n != 0) {
fact = fact * n;
n--;
}
return fact;
}
// function to Check if number is Special
static boolean isSpecial(int n)
{
int sum = 0;
int t = n;
while (t != 0) {
// calculate factorial of last digit
// of temp and add it to sum
sum += factorial(t % 10);
// replace value of t by t/10
t = t / 10;
}
// Check if number is Special
return (sum == n);
}
// Driver code
public static void main(String[] args)throws IOException
{
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the number to check if it is Special");
int n = Integer.parseInt(br.readLine());
if (isSpecial(n))
System.out.println("YES- The number is a special number");
else
System.out.println("NO- The number is not a special number");
}
}
Now, we are going to check 145 as the number and 40585 as the other number. Using this piece of code, we are going to check the numbers 145, 1 and 2. With the other program, we are going to see the number 40585 and use a different methodology for a loop that can be installed in the program. Now we are going to see different outputs for the program that has been shown above. The outputs are produced for numbers 1, 2, 25 and 145.
4.8 (7,964 ratings)
View Course
Output:
Example #2
In this coding example, we are going to see how the program can be done using for- loop. The previous program was using while loop to calculate the factorial of the number. We will see the coding example below. of how to calculate the factorial using a for loop.
Code:
//Java program to check if a number
// is a special number
import java.util.*;
import java.io.*;
class Special
{
// function to calculate the factorial
// of any number using for loop
static int factorial(int n)
{
int fact = 1;
for (int i=1;i<=n;i++)
{
fact = fact * i;
;
}
return fact;
}
// function to Check if number is Special
static boolean isSpecial(int n)
{
int sum = 0;
int t = n;
while (t != 0) {
// calculate factorial of last digit
// of temp and add it to sum
sum += factorial(t % 10);
// replace value of t by t/10
t = t / 10;
}
// Check if number is Special
return (sum == n);
}
// Driver code
public static void main(String[] args)throws IOException
{
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the number to check if it is Special");
int n = Integer.parseInt(br.readLine());
if (isSpecial(n))
System.out.println("YES- The number is a special number");
else
System.out.println("NO- The number is not a special number");
}
}
In this number 145 and 40585 which are both Special numbers which satisfy the prerequisite condition of becoming one. Hence we find that the numbers are both Special numbers which have been shown in the output.
Output:
In the codes which are given in the article are very useful and they can be used to see the print statement by someone easily on the BlueJ platform. Since the factorial concept comes into the picture we can have a concept related to the factorial of a number. The last digit of a sum of factorials of the first N terms where N>5 is always 3 because after that the last digit is always zero. Also, whenever we are considering factorial of numbers, they are not generally used in the case of decimals or fractions in a number. So, we have to only use a positive integer for the use of our numbers in the factorial program. If a fraction enters the program, then the program will terminate. We can also calculate the number of 10’s in certain big factorial by a calculation. We will see that in another article.
Conclusion
In this article, we have seen that there are four numbers majorly which are Special numbers or Krishnamurthy numbers in general. So, we see the basic structure and behavior of the numbers with respect to their factorials. We check that numbers 1,2,4 and 40585 are Special numbers which have the same characteristic as each other.
Recommended Articles
This is a guide to Special Number in Java. Here we discuss the Introduction of a special number along with different examples and its code implementation. You may also have a look at the following articles to learn more –