Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#56

Re: Sehr schneller Primzahl-Finder

  Alt 23. Aug 2005, 15:51
Delphi-Quellcode:
 for i:=0 to Trunc(Sqrt(PrimeBits)/30) do
    for j:=0 to 7 do
      if PrimesLUT[i] and (1 shl j)=0 then begin
        s:=STEMPEL[j];
        Num:=i*30+s;
        Num2:=Num*Num;
        mbit:=Num2 mod 30;
        m:=(Num2-mbit) div 30;
        while m<PrimeLen do begin
          PrimesLUT[m]:=PrimesLUT[m] or MODS[mbit];
          Inc(m, i);
          Inc(mbit, s);
          if mbit>29 then begin
            Dec(mbit, 30);
            Inc(m);
          end;
        end;
      end;
ersetze in Num := i*30+s -> Num := ic + s; und ic inkrementierst du in der i Schleife mit +30.
So gäbe es bestimmt noch einige Stellen die succesive auf dies Art und Weise beschleunigt werden können.

Gruß Hagen
  Mit Zitat antworten Zitat