Definitions

   The factorial of   0   (zero)   is defined as being   1   (unity).
   The   Factorial Function   of a positive integer,    n,    is defined as the product of the sequence:
                 n,   n-1,   n-2,   ...   1 



Task

Write a function to return the factorial of a number.

Solutions can be iterative or recursive.

Support for trapping negative    n    errors is optional.



Related task

   Primorial numbers


con
  _clkmode = xtal1 + pll16x
  _clkfreq = 80_000_000
 
obj
  ser : "FullDuplexSerial.spin"
 
pub main | i
  ser.start(31, 30, 0, 115200)
 
  repeat i from 0 to 10
    ser.dec(fac(i))
    ser.tx(32)
 
  waitcnt(_clkfreq + cnt)
  ser.stop
  cogstop(0)
 
pub fac(n) : f 
  f := 1
  repeat while n > 0
    f *= n
    n -= 1