home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* BERLEKAM.PAS *)
- (* Algorithmus zur Berechnung von a bei der Gleichung *)
- (* (a * b) MOD c = 1 und gegebenem b und c *)
- (* (c) 1989 Ralf Hensmann & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM Berlekamp;
-
- VAR
- r, p, q : ARRAY [-2..0] OF LongInt;
- c : LongInt;
- lauf : INTEGER;
-
- BEGIN
- WriteLn('Dieser Algorithmus ermittelt a in der ',
- 'Gleichnung (a*b) MOD c = 1.');
- Write( 'Geben Sie bitte b und c ein : ');
- ReadLn(r[-1], r[-2]);
-
- p[-2] := 0; q[-2] := 1;
- p[-1] := 1; q[-1] := 0;
-
- WHILE r[-1] > 1 DO BEGIN
- c := r[-2] DIV r[-1];
- r[0] := r[-2] MOD r[-1];
- p[0] := c*p[-1] + p[-2];
- q[0] := c*q[-1] + q[-2];
- FOR lauf := -2 TO -1 DO BEGIN
- r[lauf] := r[lauf+1];
- p[lauf] := p[lauf+1];
- q[lauf] := q[lauf+1];
- END;
- END;
-
- WriteLn('a = ', p[-1]);
- END.
- (* ------------------------------------------------------ *)
- (* Ende von BERLEKAM.PAS *)