Составить программу для нахождения наименьшего общего кратного четырех натуральных чисел: по формуле нок(a,b)=(a*b)/нод(a*b) (определить процедуру, распознающую нод двух чисел)
uses crt; var a,b,c,d:longint; {нахождение НОД 2х чисел по Эвклиду} function NOD(m,n:longint):longint; begin repeat i f abs(m)>abs(n) then m:=m mod n else n:=n mod m; until (m=0) or (n=0); NOD:=abs(m+n); end; begin clrscr; write('a=');readln(a); write('b='); readln(b); write('c='); readln(c); write('d='); readln(d); writeln; writeln('NOD(a,b,c,d)=',NOD(NOD(a,b),NOD(c,d))); readln end.
Type arr = array[1..10] of integer; {создаем новый тип, являющийся массивом} var i:integer; s:real; R,Q,P:arr; X:array[0..3] of integer;
function Sum(a: arr): integer; {функция вычисления суммы элементов массива} var i:integer; begin foreach i in a do {вычисляем сумму элементов по заданному правилу} if (i>=2) and (i<=4) then Result :=Result+i end; {результатом функции будет сумма}
begin randomize; {заполняем массивы случайными числами} for i:=1 to 10 do begin R[i]:=random(10); Q[i]:=random(10); P[i]:=random(10) end; write('R: '); {распечатываем содержимое массивов на экране} for i:=1 to 10 do write(R[i],' '); writeln; write('Q: '); for i:=1 to 10 do write(Q[i],' '); writeln; write('P: '); for i:=1 to 10 do write(P[i],' '); writeln; {а тут собственно само решение задачи} X[1]:=Sum(R);{передаем в ф-цию Sum массив R, она считает сумму и записывает в Х1} writeln('X[1]=',X[1]); X[2]:=Sum(Q);{передаем в ф-цию Sum массив Q, она считает сумму и записывает в Х2} writeln('X[2]=',X[2]); X[3]:=Sum(P);{передаем в ф-цию Sum массив P, она считает сумму и записывает в Х3} writeln('X[3]=',X[3]) end.
var
a,b,c,d:longint; {нахождение НОД 2х чисел по Эвклиду}
function NOD(m,n:longint):longint;
begin
repeat i
f abs(m)>abs(n) then m:=m mod n
else n:=n mod m;
until (m=0) or (n=0);
NOD:=abs(m+n);
end;
begin clrscr;
write('a=');readln(a);
write('b=');
readln(b);
write('c=');
readln(c);
write('d=');
readln(d);
writeln;
writeln('NOD(a,b,c,d)=',NOD(NOD(a,b),NOD(c,d)));
readln
end.