Einzelnen Beitrag anzeigen

Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#1

Prozedur beschleunigen....

  Alt 1. Dez 2004, 16:39
Hi Leute,
ich hab folgende Prozedur zur Berechnung aller Primzahlen von a bis b geschrieben.
Hier der Code:

Delphi-Quellcode:
var Primzahlen: array of boolean;
    a,b,i,primkandidat,nichtprim:integer;
    Start,Stop,Freq:int64;
    Liste:TStrings;
begin

Listbox1.Items.Clear;

a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
SetLength(Primzahlen,b);


Primzahlen[1] := true;

for primkandidat:=2 to b do
    if Primzahlen[primkandidat]=false then
       begin
       nichtprim:=primkandidat*2;
       while nichtprim <= b do
          begin
          Primzahlen[nichtprim] := true;
          Inc(nichtprim,primkandidat);
          end;
       end;

for i:=a to b do
    if primzahlen[i] = false then
       Listbox1.Items.Add(inttostr(i));

Mit der Rechnung bin ich im großen und ganzen ziemlich zufrieden, nur an der Ausgabe hapert's noch. Im Moment gebe ich die Zahlen von a bis b in 'ner Listbox aus. Das dauert allerdings doch einige Zeit. Da ich die Ausgabe beliebig gestalten kann dürften die Zahlen auch z.B. in einer Datei gespeichert werden. Aber bei all meinen Versuchen, war die Listbox-Variante bis jetzt die schnellste. Da ich bei dieser Routine voll auf Schnelligkeit baue hab ich auch das
obligatorische Application.Processmessages weggelassen, also Vorsicht!


Egal welche Vorschläge jetzt kommen, ich kann alles gebrauchen, das den Code beschleunigt!

tia, gordon
  Mit Zitat antworten Zitat