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

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

СРОЧНО
решите пожалуйста задачу
Pascal
Напишите процедуру, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел и возвращает их через изменяемые параметры.
Пример:
Введите два натуральных числа:
10 15
НОД(10,15)=5
НОК(10,15)=30


Информатика (91 баллов) | 56 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

procedure НОДиНОК(a,b:integer; var НОД,НОК:integer);
begin
  var c:=a*b;
  while b>0 do (a,b):=(b,a mod b); // a - НОД
  (НОД,НОК):=(a,c div a)
end;

begin
  var (a,b):=ReadInteger2('Введите два натуральных числа:');
  var НОД,НОК:integer;
  НОДиНОК(a,b,НОД,НОК);
  Writeln('НОД(',a,',',b,') = ',НОД);
  Writeln('НОК(',a,',',b,') = ',НОК);
end.

image
(150k баллов)