# Check if a number is special or not in Java

Today we will how to check whether a number is a Special number or not in Java.

But before that, we should know what is a special number.

A special number is a number such that the sum of its digit’s factorial is equal to the number itself.

Sounds confusing?

Let’s take an example to get a clear idea about a special number.

Example: 145

1! + 4! + 5! =145

5!= 5*4*3*2*1=120

4!=4*3*2*1=24

1!=1

145+24+1=145

Now we know what is a special number, so let’s start by learning how to find factorial of a method.

int fact(int n) { if(n==1 || n==0) { return 1; } else { return n*fact(n-1); } }

In the above code, we are using the recursion approach, that is, a function calling itself.

If you are not comfortable with recursion you can use the simple way of finding factorial by multiplying the number with its predecessor until 1 comes.

Now let’s look at the complete code:

class test { int fact(int n) { if(n==1 || n==0) { return 1; } else { return n*fact(n-1); } } } public class MyClass { public static void main(String args[]) { test t1=new test(); int n=145; int num=n; int res=0; int rem; while(n>0) { rem=n%10; res=res+t1.fact(rem); n=n/10; } if(res==num) { System.out.println("Number is special"); } else { System.out.println("Number is Not special"); } } }

The above program when executed will give the following output:

Number is special

Hope this helped you out. We are able to check if a number is special or not with Java programming.

Happy Coding.

Also Read:

## Leave a Reply