Неполучается найти наибольший общий делитель двух чисел.
Поискал в инете, вот нашел.
Где то здесь есть ошибка.
Помогите найти и исправить.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
p, n1, m1, n, m, R: LongWord;
begin
n:= StrToInt(edit1.text);
m:= StrToInt(edit2.Text);
if (n = 0) or (m = 0) then
R:= 0
else
begin
if m < n then
begin
n1 := m;
m1 := n;
end;
begin
n1 := n;
m1 := m;
end;
while n1 > 0 do
begin
p := m1 mod n1;
m1 := n1;
n1 := p;
end;
R := m1;
panel1.Caption:=IntToStr(R);
end;
end;
end.