Hi,
Optimierungen:
while($count <= $zahl) {
Wenn es Teiler außer 1 und der Zahl selbst gibt, ist einer kleiner oder gleich der Wurzel der Zahl, der andere größer oder gleich der Wurzel.
Es ist also nicht notwendig, den Zähler bis zur Zahl selbst laufen zu lassen, man kann bereits abbrechen, wenn die Wurzel der Zahl überschritten wurde.
Dann ist die Zahl eine Primzahl.
Das spart schon mal einen Haufen Laufzeit ein.
$count++;
Ich würde den Teiler 2 extra behandeln.
Wenn dies nicht zum Ergebnis keine Primzahl führt (sprich: die $zahl ist ungerade), dann braucht man nicht mehr durch gerade Zahlen zu teilen versuchen, denn wenn es einen geraden Teiler gäbe, wäre auch die 2 Teiler.
Es reicht also, mit 2 und dann mit 3, 5, 7, 9, 11, ... zu testen.
Das sorgt in etwa für die Halbierung der Laufzeit.
Und statt
$division = $zahl/$count;
$divisionround = round($division);
würde ich eher
$rest = $zahl % $count;
benutzen und prüfen, ob der Rest 0 ist (==> keine Primzahl)
Weitere Optimierungen wären möglich ...
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.