// НОД(a,b)*НОК(a,b)=a*b
procedure nod(x,y: integer; var n: integer);
begin
repeat
if x>y then x:=x mod y
else y:=y mod x;
until (x=0)or(y=0);
n:=x+y;
end;
var a,b,c,d,e,n: integer;
readln(a,b,c,d);
nod(a,b,n);
e:=a*b div n;
nod(c,e,n);
e:=c*e div n;
nod(d,e,n);
Writeln('НОК = ',d*e div n);
end.
Объяснение:
Пример:
36 54 18 15
НОК = 540
// НОД(a,b)*НОК(a,b)=a*b
procedure nod(x,y: integer; var n: integer);
begin
repeat
if x>y then x:=x mod y
else y:=y mod x;
until (x=0)or(y=0);
n:=x+y;
end;
var a,b,c,d,e,n: integer;
begin
readln(a,b,c,d);
nod(a,b,n);
e:=a*b div n;
nod(c,e,n);
e:=c*e div n;
nod(d,e,n);
Writeln('НОК = ',d*e div n);
end.
Объяснение:
Пример:
36 54 18 15
НОК = 540