A **special number** is a number in which the sum of the factorial of each digit is equal to the number itself.

For example: 145.

1! + 4! + 5! = 1 + 24 + 120 = 145.

Thus, 145 is a special number.

Design a class **Special** to check if a given number is a special number. Some of the members of the class are given below:

**Class name:** Special**Data members:**

n: to store the integer.**Member functions:**

Special(): constructor to assign 0 to n.

Special(int): parameterized constructor to assign a value to ‘n’.

void sum(): calculate and display the sum of the first and last digit of ‘n’.

void isSpecial(): check and display if the number ‘n’ is a special number.

Specify the class **Special** giving details of the constructors, void sum() and void isSpecial(). You need not write the main() function.

```
class Special{
private int n;
public Special(){
n = 0;
}
public Special(int num){
n = num;
}
public void sum(){
int sum = 0;
String s = Integer.toString(n);
String first = s.substring(0, 1);
String last = s.substring(s.length() - 1);
sum = Integer.parseInt(first) + Integer.parseInt(last);
System.out.println("Sum of first and last digit: " + sum);
}
public void isSpecial(){
int num = n;
int sum = 0;
while(num != 0){
int d = num % 10;
int f = 1;
for(int i = 1; i <= d; i++)
f *= i;
sum += f;
num /= 10;
}
if(n == sum)
System.out.println(n + " is a special number.");
else
System.out.println(n + " is not a special number.");
}
}
```

To find the factorial of each digit using recursion, you may create the following method:

```
int factorial(int x){
if(x <= 1)
return 1;
return x * factorial(x - 1);
}
```