program Euklides; { wczytuje liczby naturalne m i n. Jesli dodatnie, liczy NWD(m,n). Działa poprawnie dla liczb w dziedzinie typu INTEGER, a np. daje wynik 1 dla m=66666 i n = 66777 gdy NWD(m,n)=3 } var m, pie, n, dru, wynik : integer; begin writeln('Podaj dwie liczby naturalne'); readln (m,n); (* -- wydruk pomocniczy ------ *) writeln('m= ',m,', n= ',n); if (m>0) and (n>0) then begin pie := m; dru := n; while pie <> dru do begin if pie > dru then pie := pie - dru else dru := dru - pie; (* ---- wydruk pomocniczy ------------ *) (* writeln('pie= ',pie,', dru= ',dru); *) end ; wynik := pie; writeln('NWD(',m,',',n,')= ',wynik) end else writeln('niewłaściwe dane') end.