Einzelnen Beitrag anzeigen

PPaB

Registriert seit: 23. Jan 2009
35 Beiträge
 
#3

Re: Primzahlen in einem bestimmten Bereich errechnen

  Alt 8. Jan 2010, 22:29
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;
  Mit Zitat antworten Zitat