int factorial(int number)
{
int fac = 1;
#pragma omp parallel
{
int fac_private = 1; /* This value comes from the table shown above */
#pragma omp for nowait
for(int n=2; n<=number; ++n)
fac_private *= n;
#pragma omp atomic
fac *= fac_private;
}
return fac;
}