Navigace: Hlavní stránka -> PASCAL -> 04 Cykly -> 04.25 Největší společný dělitel II

MENU

04.25 Největší společný dělitel II

Zadání:
Sestavte program, který určí největšího společného dělitele dvou přirozených čísel.
Řešení:
Řešení je postaveno na principu odečtení menšího čísla od většího a nahrazení většího čísla tímto rozdílem. Tato akce
se opakuje do té doby, dokud se obě čísla nerovnají. Pokud se rovnají, jejich hodnaota je zároveň největším
společným dělitelem.

Příklad: a=42, b=70
1. b je vetší než a, hodnotu b nahradíme rozdílem b-a: a=42, b=28
2. a je větší než b, hodnotu a nahradíme rozdílem a-b: a=14, b=28
3. b je větší než a, hodnotu b nahradíme rozdílem b-a: a=14, b=14
obě čísla se rovnají, největší společný dělitel je 14
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b: integer;

begin

   writeln('Zadejte prvni cislo: ');
   readln(a);
   writeln('Zadejte druhe cislo: ');
   readln(b);

   if (a<=0) or (b<=0) then writeln('Nelze vypocitat.')
   else
   begin
      while a<>b do
         if a>b then a:=a-b
                else b:=b-a;
      writeln('Nejvetsi spolecny delitel: ',a);
   end;
   readln;

end.
program ke stažení

Pro studenty:
Na rozdíl od použití příkazu REPEAT v programu 04.24 použití příkazu WHILE řeší problém s nekonečnou smyčkou
při zadání dvou shodných hodnot.