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

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

.PAS
Скачиваний:
7
Добавлен:
01.05.2014
Размер:
1.12 Кб
Скачать
{ ‘ҐаЈҐҐў Ђ.€., Ја.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.