В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
mkudrya
mkudrya
05.03.2022 10:53 •  Информатика

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

Показать ответ
Ответ:
ПолЕчка11117
ПолЕчка11117
02.08.2020 21:19
// 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
0,0(0 оценок)
Ответ:
kashasha
kashasha
02.08.2020 21:19

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.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота