СРОЧНО Напишите процедуру, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел и возвращает их через изменяемые параметры Только через процедуры!

СРОЧНО Напишите процедуру, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел и возвращает их через изменяемые параметры Только через процедуры!
Гость
Ответ(ы) на вопрос:
Гость
program qq;  uses crt;  procedure NOD_NOK(n1,n2:integer;var a,b:integer);  var m:integer;  begin  if n1>n2 then m:=n1 else m:=n2;  a:=m-1;  repeat  a:=a+1  until ((a mod n1)=0) and ((a mod n2)=0);  while n1<>n2 do  if n1>n2 then n1:=n1-n2 else n2:=n2-n1;  b:=n1;  end;  var y,x,a,b:integer;  begin  repeat  writeln('Введите 2 натуральных числа:');  read(x,y);  until(x>0)and(y>0);  NOD_NOK(x,y,a,b);  writeln('NOD(',x,',',y,')=',b);  writeln('NOK(',x,',',y,')=',a);  end.
Гость
// 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы