home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 11 / titel / berlekam.pas next >
Encoding:
Pascal/Delphi Source File  |  1989-08-30  |  1.1 KB  |  39 lines

  1. (* ------------------------------------------------------ *)
  2. (*                      BERLEKAM.PAS                      *)
  3. (*   Algorithmus zur Berechnung von a bei der Gleichung   *)
  4. (*        (a * b) MOD c = 1 und gegebenem b und c         *)
  5. (*          (c) 1989  Ralf Hensmann  &  TOOLBOX           *)
  6. (* ------------------------------------------------------ *)
  7. PROGRAM Berlekamp;
  8.  
  9. VAR
  10.   r, p, q : ARRAY [-2..0] OF LongInt;
  11.   c       : LongInt;
  12.   lauf    : INTEGER;
  13.  
  14. BEGIN
  15.   WriteLn('Dieser Algorithmus ermittelt a in der ',
  16.           'Gleichnung (a*b) MOD c = 1.');
  17.   Write(   'Geben Sie bitte b und c ein : ');
  18.   ReadLn(r[-1], r[-2]);
  19.  
  20.   p[-2] := 0;  q[-2] := 1;
  21.   p[-1] := 1;  q[-1] := 0;
  22.  
  23.   WHILE r[-1] > 1 DO BEGIN
  24.     c    := r[-2] DIV r[-1];
  25.     r[0] := r[-2] MOD r[-1];
  26.     p[0] := c*p[-1] + p[-2];
  27.     q[0] := c*q[-1] + q[-2];
  28.     FOR lauf := -2 TO -1 DO BEGIN
  29.       r[lauf] := r[lauf+1];
  30.       p[lauf] := p[lauf+1];
  31.       q[lauf] := q[lauf+1];
  32.     END;
  33.   END;
  34.  
  35.   WriteLn('a = ', p[-1]);
  36. END.
  37. (* ------------------------------------------------------ *)
  38. (*                 Ende von BERLEKAM.PAS                  *)
  39.