Factorial: Difference between revisions

m
Line 6,175:
end;</lang>
=== Iterative FreePascal ===
{$mode objFPC}{R+}
<lang pascal>
 
<lang pascal>FUNCTION Factorial ( n : qword ) : qword;
 
(* Update for version 3.2.0 *)
(* Factorial works until 20! , which is good enough for me for now *)
(* replace qword with dword and rax,rcx with eax, ecx for 32-bit *)
(* for Factorial until 12! *)
 
VAR
F: qword;
BEGIN
Line 6,186 ⟶ 6,193:
asm
mov $1, %rax
mov n, %rcx
.Lloop1:
Line 6,193 ⟶ 6,200:
loopnz .Lloop1
mov %rax, FactorialF
 
end;
 
Result := F ;
END;</lang>
 
=== Recursive ===
<lang pascal>function factorial(n: integer): integer;
122

edits