**Write a Modular C Programming code to solve Special Number-5, A number is a special number if the sum of the factorial of the digits is equal to the number.**

Suri and Guru are talented students; they always want to be unique in their classes. After research, by referring to some mathematics books, Suri comes with a special number. A number is a special number if the sum of the factorial of the digits is equal to the number. Guru wants to implement the same by using a programming language. Please help Guru to solve the problem by using Problem Solving Framework and Write the modular C program.

**Ex1:** 145 is a special number.

Explanation

1!+ 4!+5!

1+24+120=145

**Input Format**

First-line indicates the number ‘N’

**Constraints**

10<=N<=1000000

**Output Format**

First-line prints YES if it’s a special number, else NO

**Sample Input 0**

```
2
```

**Sample Output 0**

```
YES
```

**Sample Input 1**

```
25
```

**Sample Output 1**

`NO`

**Refer :** C Programming HackerRank all solutions for Loops | Arrays | strings

**CODE:**

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int fact(int dig) { int i,fact=1; for(i=1;i<=dig;i++) { fact=fact*i; } return fact; } void specail(int n) { int fact0=1,dig=0,sum=0,copy; copy=n; while(n!=0) { dig=n%10; fact0=fact(dig); sum=sum+fact0; fact0=1; dig=0; n=n/10; } if(copy==sum) printf("YES\n"); else printf("NO\n"); } int main() { int n; scanf("%d,",&n); specail(n); return 0; }

**OUTPUT**

Congratulations, you passed the sample test case. Click the Submit Code button to run your code against all the test cases. Input (stdin) 2 Your Output (stdout) YES Expected Output YES

**Please find some more codes of Loops, Condition Statements, 1D Arrays, 2D Arrays, Strings, Pointers, Data Structures, Files, Linked lists, MISC, Solved model question papers & Hacker Rank all solutions on the below page:**