Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритм Евклида

.PAS
Скачиваний:
8
Добавлен:
01.05.2014
Размер:
1 Кб
Скачать
{ ‘ҐаЈҐҐў Ђ.€., Ја.234, 7.09.92 }
{ ‹ Ў®а в®а­ п а Ў®в  N 0 }
{ Greatest Common Divisor }

{ GCD(a,b) - ­ ЁЎ®«миЁ© ®ЎйЁ© ¤Ґ«ЁвҐ«м ­ вга «м­ле a,b }

{ ЇаЁ¬Ґз ­ЁҐ: Ї®¬ҐвЄ  "Dem" ў ⥪б⥠㪠§лў Ґв ­ 
              ¤Ґ¬®­бва жЁ®­­л© да Ј¬Ґ­в                }
type
    Nat0 = 0..MaxLongInt;
var
    a,b,u,v,
    Remainder,
    Quotient,               {Dem}
    i         : Nat0;       {Dem}
begin
 WriteLn('‚ўҐ¤ЁвҐ ¤ў  ­ вга «м­ле зЁб« :');
 Read( a, b);
 WriteLn('Ќ е®¤Ё¬ ЌЋ„ Ї ал зЁбҐ« :', a :10, ',', b :10);
                 {Dem} i := 0;
 u := a;
 v := b;
 { u>=0 & v>=0 & GCD(u,v)=GCD(a,b) }
 while v <> 0 do
 begin { u>=0 & v>0 & GCD(u,v)=GCD(a,b) }
                 {Dem} i := i + 1; Write(' Ј ', i:3);
                 {Dem} Quotient := u div v;
  Remainder := u mod v;
                 {Dem} WriteLn(' :: ', u:10,' =',
                       Quotient:5,' *',v:10,' +',Remainder:10);
  u := v;
  v := Remainder;
  { u>0 & v>=0 & GCD(u,v)=GCD(a,b) }
 end {while};
 { u>=0 & v=0 & u=GCD(u,0)=GCD(a,b) }
 WriteLn;
 WriteLn('ђҐ§г«мв в : --> ЌЋ„(', a:1, ',', b:1, ') = ', u:1);
end.