Ok ich verstehe das jetzt so:
Delphi-Quellcode:
For a:= x to y do
begin
if a <= 100 then
prim := true;
end; //von begin
Hier wird erstmal geschaut, ob die Zahl kleiner als 101 ist, äh wieso eigendlich?
Darf der Bereich maximal bis 100 gehen?
Würde die Zeile mit dem if einfach weglassen.
Delphi-Quellcode:
for b:= 2 to a do
begin
if b <= a then
if a mod b = 0 then
prim := false;
end; //von begin
Und hier wird dann geschaut, ob man irgendwann ohne Rest teilen kann und dann ist die Zahl keine Primzahl.
Delphi-Quellcode:
begin
listbox_ausgabe.Items.Add (inttostr(b));
end; // von begin
Da fehlt meiner Meinung nach noch eine If-Abfrage, ob prim = True ist!
Edit: Ich würde das so schreiben:
Delphi-Quellcode:
procedure TForm1.btn_berechnenClick(Sender: TObject);
var a, b, x, y: integer;
prim: boolean;
begin
x:= strtoint (edt_von.Text);
y:= strtoint (edt_bis.Text);
for a:= x to y do
begin //soweit ist alles ok
prim := true;
for b:= 2 to Round(a/2) do //man muss nur bis zur Hälfte gehen, da danach sowieso keine Reslosen Mengen mehr entstehen
begin
if a mod b = 0 then //Dann brauchst du hier auch keine weitere if-Schleife mehr
prim := false;
end; //von begin
if prim = True then
listbox_ausgabe.Items.Add (inttostr(b));
end; // von begin
end;