home *** CD-ROM | disk | FTP | other *** search
- {
- 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
-