Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#15

Re: MJFunctions - kleine Funktionssammlung

  Alt 11. Mai 2007, 14:28
Die Wurzel kann man vereinfachen:
Statt auf Wurzel(x) zu überprüfen, kann man auch prüfen ob i² = x ist
Außerdem könnte man es einmal in eine Variable schreiben, da sich "Value" nicht ändern (sollte)... Dabei könnte man es auch konstant machen

Auch sind die ganzen exits unschön ...

Ich habe es mal größtenteils optimiert... Das mit den Quadrat hab ich mal nicht eingebaut... war mir net sicher...
Delphi-Quellcode:
function Prim(const Value: Cardinal) : Boolean;
var
  i, sr : Cardinal;
begin
  Result := true
  if (Value <= 1) or ((Value mod 2 = 0) and (Value <> 2)) then
    Result := false
  else if Value > 2 then
  begin
    i := 3;
    sr := Trunc(Sqrt(Value)) + 1;
    while i <= sr do
    begin
      if Value mod i = 0 then
      begin
        Result := false;
        exit;
      end;
      Inc(i, 2);
    end;
  end;
end;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat