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

0 голосов
198 просмотров

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


Информатика (1.3k баллов) | 198 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// 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
(150k баллов)
0 голосов

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.

(68 баллов)
0

Ей именно процедурой нужно

0

Уже увидел)

0

c++ например)

0

Или c#

0

Я работал с явой, паскалем и шарпом, все остальное как-то не интересовало