СРОЧНО Напишите процедуру, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел и возвращает их через изменяемые параметры Только через процедуры!
СРОЧНО
Напишите процедуру, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел и возвращает их через изменяемые параметры
Только через процедуры!
Ответ(ы) на вопрос:
Гость
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
Не нашли ответ?
Похожие вопросы