% Accepts a number and calculates its factorial

function factorial (n: int) : real
     if n = 0 then
	  result 1
     else
	  result n * factorial (n - 1)
     end if
end factorial

var n: int
loop
     put "Please input an integer: " ..
     get n
     exit when n >= 0
     put "Input must be a non-negative integer."
end loop

put "The factorial of ", n, " is ", factorial (n)

