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


window 1, @"Factorial", ( 0, 0, 300, 550 )
 
local fn factorialIterative( n as long ) as double
  double f
  long i
 
  if ( n > 1 )
    f = 1
    for i = 2 to n
      f = f * i
    next
  else
    f = 1
  end if
end fn = f
 
local fn factorialRecursive( n as long ) as double
  double f
 
  if ( n < 2 )
    f = 1
  else
    f = n * fn factorialRecursive( n -1 )
  end if
end fn = f
 
long i
 
for i = 0 to 12
  print "Iterative:"; using "####"; i; " = "; fn factorialIterative( i )
  print "Recursive:"; using "####"; i; " = "; fn factorialRecursive( i )
  print
next
 
HandleEvents