Даны два натуральных числа a и b, не равные нулю одновременно. Вычис-лить НОД (a,b) — наибольший общий делитель а и b. Делителями называются числа, которые делят без остатка заданное число, кроме единицы и самого этого числа — Pascal(Паскаль)

var a,b:integer;
    min,maxd,i:integer;
begin
  write('Введите а ');
  readln(a);
  write('Введите b ');
  readln(b);
   if (a=0) or (b=0) then
     begin
      write('Ошибка! ноль вводить нельзя!');
      halt
     end;


    if a>b then
      min:=b
   else
     min:=a;
    
   maxd:=1;  
      for i:=1 to min do
         if (a mod i = 0) and (b mod i = 0) then
              if i> maxd then
                 maxd:=i;

write('Наибольший общий делитель чисел',a,' и ',b,' равен: ',maxd);
readln;



end.

Вариант 2

var a, b, kol, i : longint;
function nsd(a, b : longint) : longint;
begin
while (a <> 0) and (b <> 0) do
if a >= b then
a := a mod b
else
b := b mod a;
nsd := a + b;
end;
begin
readln(a, b);
writeln(nsd(a, b));
end.

Leave a Comment

51 − = 41