home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 01 / tricks / ggt.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-10-22  |  1.7 KB  |  56 lines

  1. (* ------------------------------------------------------ *)
  2. (*                        GGT.PAS                         *)
  3. (*          Größter gemeinsamer Teiler nach dem           *)
  4. (*              Prinzip der Wechselwegnahme               *)
  5. (*                   Turbo Pascal 5.0                     *)
  6. (*         (c) 1990 Marius-Iulian Tamas & TOOLBOX         *)
  7. (* ------------------------------------------------------ *)
  8.  
  9. USES Crt;
  10. VAR  Dividend, Divisor, Ganze_Zahl      : INTEGER;
  11.      Groesster_Gemeinsamer_Divisor      : INTEGER;
  12.  
  13. FUNCTION GGDiv(Dividend, Divisor : INTEGER): INTEGER;
  14. BEGIN
  15.   Dividend := Dividend MOD Divisor;
  16.   IF Dividend = 0 THEN
  17.     GGDiv := Divisor
  18.   ELSE
  19.     IF Dividend = 1 THEN
  20.       GGDiv := 1
  21.     ELSE
  22.       GGDiv := GGDiv(Divisor, Dividend);
  23. END;
  24.  
  25. BEGIN
  26.   ClrScr;
  27.   WHILE TRUE DO BEGIN
  28.     Write('Dividend [Ende = 0] : ');
  29.     ReadLn(Dividend);
  30.     IF Dividend = 0 THEN
  31.       Halt;
  32.     REPEAT
  33.       Write('Divisor             : ');
  34.       ReadLn(Divisor);
  35.     UNTIL Divisor <> 0;
  36.     Write(Dividend, ' / ', Divisor, ' = ');
  37.     Ganze_Zahl := Dividend DIV Divisor;
  38.     IF Ganze_Zahl <> 0 THEN
  39.     Write(Ganze_Zahl,' ');
  40.     Dividend := Dividend MOD Divisor;
  41.     IF Dividend <> 0 THEN BEGIN
  42.       Groesster_Gemeinsamer_Divisor :=
  43.         GGDiv(Dividend, Divisor);
  44.       Dividend :=
  45.         Dividend DIV Groesster_Gemeinsamer_Divisor;
  46.       Divisor := Divisor DIV Groesster_Gemeinsamer_Divisor;
  47.       Write(Dividend, ' / ', Divisor)
  48.     END ELSE
  49.       IF Ganze_Zahl = 0 THEN
  50.         Write(0);
  51.     WriteLn;
  52.   END;
  53. END.
  54. (* ------------------------------------------------------ *)
  55. (*                   Ende von GGT.PAS                     *)
  56.