Contributor: JUD MCCRANIE
{
Fibonacci for longints and comps, GCD for longint, plus LCM
Jud McCranie
jud.mccranie@camcat.com
================================================
}
function Fibonacci( n : word) : longint;
{ Fibonacci numbers, by Jud McCranie. }
var i   : word;
    f1, f2, fib : longint;
begin { ----- fibonacci ----- }
if n > 46 then
begin
  writeln( 'In Fibonicci - N is too large for a longint');
  halt;
end;
fib := 1;
f1  := 1;
f2  := 1;
for i := 3 to n do
begin
  fib := f1 + f2;
  f2  := f1;
  f1  := fib;
end;
Fibonacci := fib;
end; { ----- fibonacci ----- }
function FibonacciComp( n : word) : comp;
{ Fibonacci numbers, by Jud McCranie. }
var i   : word;
    f1, f2, fib : comp;
begin { ----- fibonacci comp ----- }
if n > 92 then
begin
  writeln( 'In Fibonicci - N is too large for a comp');
  halt;
end;
fib := 1.0;
f1  := 1.0;
f2  := 1.0;
for i := 3 to n do
begin
  fib := f1 + f2;
  f2  := f1;
  f1  := fib;
end;
FibonacciComp := fib;
end; { ----- fibonacci comp ----- }
-------------------------------------------------
function GCD( u, v : LongInt) : LongInt;
{ Greatest Common Divisor, by Jud McCranie }
var t : LongInt;
begin { --- gcd --- }
while v <> 0 do
begin
  t := u mod v;
  u := v;
  v := t;
end;
GCD := u;
end; { --- GCD --- }
function LCM( x, y : LongInt) : LongInt;
{ Least Common Multiple, by Jud McCranie }
begin { --- lcm --- }
LCM := (x div GCD( x, y)) * y;
end; { --- LCM --- }
Jud McCranie
 * Silver Xpress V4.02B03P SW20178