Weil du schon so mutig warst und deinen ganzen Code geteilt hast, habe ich mal die gröbsten Sachen rausgenommen
Dinge wie "Globale Variablen", "redundante Abfragen" und "doppelte Initialisierung von Variablen" müssen ja nicht sein. Auch wenns mal schnell sein muss...
Vielleicht bringts dir was:
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm1 =
class(TForm)
Edit1 : TEdit;
Button1 : TButton;
procedure Button1Click(Sender: TObject);
public
Max : integer;
Primzahlen :
array of Integer;
Primzahl : Boolean;
procedure OutPutMessage;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
I, F : Integer;
begin
max := strtoint(edit1.Text);
I := 1;
repeat
if (I > 0)
then
begin
Primzahl := true;
for F := 2
to I - 1
do
begin
if ((I
mod F) = 0)
then
begin
Primzahl := false;
Break;
end;
end;
if (Primzahl)
then
begin
SetLength(Primzahlen, High(Primzahlen) + 2);
Primzahlen[High(Primzahlen)] := I;
end;
end;
I := I + 2;
until(I >= Max);
OutPutMessage;
end;
procedure TForm1.OutPutMessage;
var
XC :
String;
I : Integer;
begin
for I := 0
to High(Primzahlen)
do
begin
XC := XC + inttostr(Primzahlen[I]) + '
, ';
end;
showmessage(XC);
end;
end.
Da kann man selbstverständlich immernoch einiges optimieren und besser machen. Grüße