// PascalABC.NET 3.2, сборка 1385 от 14.02.2017
// Внимание! Если программа не работает, обновите версию!
procedure NOD_NOK(a,b:integer; var NOD,NOK:integer);
begin
(var p,var q):=(a,b);
while q>0 do (p,q):=(q,p mod q);
NOD:=p; NOK:=a*b div NOD
end;
begin
var a,b,c,d:integer; Read(a,b);
NOD_NOK(a,b,c,d);
Writeln('НОД=',c,', НОК=',d)
end.
Пример
138 42
НОД=6, НОК=966