#include <math.h>
double factorial(int n)
{
double result=1;
if(n>30)
result=pow(n/M_E,n)*sqrt(2*M_PI*n); //FOR BIG NUMBERS
else
for(int i=1;i<=n;i++) //FOR SMALL NUMBERS
{
result*=i;
}
return result;
}