0
program345
29.08.14
✎
15:19
|
доброго дня!
написал программу для нахождения Наибольшего общего делителя
с условием использования конверсии:
var
a,b:integer;
procedure nod(a,b:integer);
var
min,max,x1,x2,ood:integer;
begin
if a=b then begin
writeln('НОД = ',a);
exit;
end;
if a>b then begin
max:=a;
min:=b;
end
else begin
max:=b;
min:=a;
end;
ood:=max mod min;
if ood=0 then
begin
writeln('НОД = ',min);
exit;
end;
x2:=ood;
ood:=min mod x2;
if ood=0 then
begin
writeln('НОД = ',x2);
exit;
end;
x1:=x2;
x2:=ood;
nod(x1,x2);
end;
begin
writeln('введите 2 числа для опреления НОД: ');
readln(a,b);
nod(a,b);
end.
без использовании конверсии:
var
a,b:integer;
procedure nod(a,b:integer);
var
min,max,x1,x2,ood:integer;
begin
if a=b then begin
writeln('НОД = ',a);
exit;
end;
if a>b then begin
max:=a;
min:=b;
end
else begin
max:=b;
min:=a;
end;
ood:=max mod min;
if ood=0 then
begin
writeln('НОД = ',min);
exit;
end;
x2:=ood;
ood:=min mod x2;
if ood=0 then
begin
writeln('НОД = ',x2);
exit;
end;
while ood<>0 do
begin
x1:=x2;
x2:=ood;
ood:=x1 mod x2;
end;
writeln('НОД = ',x2);
end;
begin
writeln('введите 2 числа для опреления НОД: ');
readln(a,b);
nod(a,b);
end.
|
|