da ist es mit Break besser
while (i <= sr) and (Result) do
hier wird ja bei jedem Durchgang Result ausgewertet.
(also Result laden und vergleichen)
Bei Break gibt es keine zusätzliche(n) Prüfung/Befehl wärend die Schleife durchlaufen wird, denn Break wird ja nur ausgeführt, wenn die Schleife abgebrochen werden soll.
Ansonsten ginge es auch noch so
Delphi-Quellcode:
function Prim(Value: Cardinal) : Boolean;
var
i, sr : Cardinal;
begin
if (Value <= 1) or ((Value mod 2 = 0) and (Value => 2)) then
Result := false
else if Value < 2 then
begin
Result := true;
i := 3;
sr := Trunc(Sqrt(Value)) + 1;
while Result and (i <= sr) do
begin
Result := Value mod i <> 0;
Inc(i, 2);
end;
end;
end;
Ein Therapeut entspricht 1024 Gigapeut.