unsigned long t_start=0;
unsigned long t_stop=0;
unsigned long num=0;

unsigned long factorial(int n);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  t_start=micros();
  num=factorial(10);
  t_stop=micros();
  Serial.print(num);
  Serial.print(", time: ");
  Serial.print(t_stop-t_start);
  Serial.println("us");
  delay(5000);
}

unsigned long factorial(int n)
{
  if (n==0)
  {
    return 1;
  }
  else
  {
    unsigned long fact=1;
    for (int i=1; i<n; i++)
    {
      fact=fact*i;
    }
    return fact;
  }
}