Factorial
Factorial
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
The Factorial Function is the product of a sequence n, n-1, n-2...1 starting at the input number to the function.
Write a function to return the factorial of a number. Solutions can be iterative or recursive (though recursive solutions are generally considered too slow and are mostly used as an exercise in recursion). Support for negative n errors is optional.
References
Ada
Iterative
<Ada> function Factorial (N : Positive) return Positive is
Result : Positive := N; Counter : Natural := N - 1;
begin
for I in reverse 1..Counter loop Result := Result * I; end loop; return Result;
end Factorial; </Ada>
Recursive
<Ada> function Factorial(N : Positive) return Positive is
Result : Positive := 1;
begin
if N > 1 then Result := N * Factorial(N - 1); end if; return Result;
end Factorial; </Ada>
Python
Iterative
<python>def factorial(n):
z=n while n>1: n=n-1 z=z*n return z
</python>
Recursive
<python>def factorial(n):
z=1 if n>1: z=n*factorial(n-1) return z
</python>
ALGOL 68
Iterative
PROC factorial = (INT in n)LONG LONG INT:( INT n := in n; LONG LONG INT z := n; WHILE n>1 DO n -:= 1; z *:= n OD; z ); ~
Recursive
PROC factorial = (INT n)LONG LONG INT:( IF n>1 THEN n*factorial(n-1) ELSE 1 FI ); ~