home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* GGT.PAS *)
- (* Größter gemeinsamer Teiler nach dem *)
- (* Prinzip der Wechselwegnahme *)
- (* Turbo Pascal 5.0 *)
- (* (c) 1990 Marius-Iulian Tamas & TOOLBOX *)
- (* ------------------------------------------------------ *)
-
- USES Crt;
- VAR Dividend, Divisor, Ganze_Zahl : INTEGER;
- Groesster_Gemeinsamer_Divisor : INTEGER;
-
- FUNCTION GGDiv(Dividend, Divisor : INTEGER): INTEGER;
- BEGIN
- Dividend := Dividend MOD Divisor;
- IF Dividend = 0 THEN
- GGDiv := Divisor
- ELSE
- IF Dividend = 1 THEN
- GGDiv := 1
- ELSE
- GGDiv := GGDiv(Divisor, Dividend);
- END;
-
- BEGIN
- ClrScr;
- WHILE TRUE DO BEGIN
- Write('Dividend [Ende = 0] : ');
- ReadLn(Dividend);
- IF Dividend = 0 THEN
- Halt;
- REPEAT
- Write('Divisor : ');
- ReadLn(Divisor);
- UNTIL Divisor <> 0;
- Write(Dividend, ' / ', Divisor, ' = ');
- Ganze_Zahl := Dividend DIV Divisor;
- IF Ganze_Zahl <> 0 THEN
- Write(Ganze_Zahl,' ');
- Dividend := Dividend MOD Divisor;
- IF Dividend <> 0 THEN BEGIN
- Groesster_Gemeinsamer_Divisor :=
- GGDiv(Dividend, Divisor);
- Dividend :=
- Dividend DIV Groesster_Gemeinsamer_Divisor;
- Divisor := Divisor DIV Groesster_Gemeinsamer_Divisor;
- Write(Dividend, ' / ', Divisor)
- END ELSE
- IF Ganze_Zahl = 0 THEN
- Write(0);
- WriteLn;
- END;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von GGT.PAS *)