d:= 1; while оба числа а и b четные do begin a:= a div 2; b:=b div 2; d:= d*2; end; while оба числа a и b отличны от нуля do begin if одно из a, b четное then поделить его на 2 else заменить большее из a,b их разностью end; NOD:= (ненулевое из a,b )*d;