Цитата:
Сообщение от trnext
Помогите пожалуйста убрать последний знак в ответе.
Пишу на Delphi 7, программа должна разлаживать заданное число на простые множители.
|
Кроме того, она работает неправльно на Exit1.Text=4;
Лучше так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x,z,e,k: integer;
S:string;
begin
Val(Edit1.Text,z,e); // а вдруг ввели непойми чего
if e<>0 then
begin
Edit2.Text:=Edit1.Text+' - не целое';
Exit;
end;
if z=1 then // тривиальный случай
begin
Edit2.Text:='1=1';
Exit;
end;
e:=2;
k:=0;
repeat
x:=z mod e;
if x=0 then
begin
z:=z div e;
if k = 0 then
begin
if S='' then
S:=inttostr(e)
else
S:=S+' * '+inttostr(e);
end;
k:=k+1;
end
else
begin
if k > 1 then
S:=S+'^'+inttostr(k);
e:=e+1;
k:=0;
end;
until e>z ;
if k > 1 then
S:=S+'^'+inttostr(k);
Edit2.Text:=Edit1.Text+'='+S;
end;
.