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

На вход программы поступают 2 целых положительных числа. Необходимо найти их наибольший общий делитель и наименьшее общее кратное.

Описание входных и выходных данных

В двух строках по одному записаны натуральные числа, не превосходящие 100000000.
В качестве результата программа должна напечатать через пробел наибольший общий делитель и наименьшее общее кратное данных чисел.

Пример входных данных:

12

16

Пример выходных данных для приведённого выше примера входных данных:

4 48

Требуется написать эффективную по времени и памяти программу. Перед текстом программы обязательно опишите алгоритм решения. Укажите использованный язык программирования и его версию.

Ответы

Ответ дал: Listvichka177
3

program krolik;

var a,b,i,del,kr,p:longint;

begin

writeln('введите значение первого числа');

readln(a);

writeln('введите значение второго числа');

readln(b);

if (a<=0) or (b<=0) then

writeln('ошибка');

del:=1;

for i:=1 to a do

if (a mod i=0) and (b mod i=0) then

del:=i;

p:=a*b;

kr:=p;

for i:=p downto 1 do

if (i mod a=0) and (i mod b=0) then

kr:=i;

writeln(del,' ',kr);

end.

Вас заинтересует