Primzahlen in php ausgeben?

4 Antworten

  public function berechnePrimzahlenBis(int $obergrenze): array
    {
        $aktuelleZahl = 2;
        $primzahlen = [];

        while ($aktuelleZahl <= $obergrenze) {
            $istPrimzahl = true;
            $teiler = 2;

            while ($teiler <= sqrt($aktuelleZahl)) {
                if ($aktuelleZahl % $teiler === 0) {
                    $istPrimzahl = false;
                    break;
                }

                $teiler++;
            }

            if ($istPrimzahl) {
                $primzahlen[] = $aktuelleZahl;
            }

            $aktuelleZahl++;
        }

        return $primzahlen;
    }
Kann jemand sagen, was ich vergessen habe?

Du fragst in der Schleife ab, ob $zahl geteilt durch sich selbst den Wert 1 ergibt. Das trifft für jede natürlich Zahl zu. Also kannst du diese Abfrage auch weglassen.

Dann fragst du ab, ob $zahl geteilt durch 1 den Wert $zahl ergibt. Das trifft für jede Zahl zu. Also kannst du auch diese Abfrage weglassen.

Damit verbleibt in deiner Schleife

while ($zahl < 100)
{
  echo $zahl.'<br>';
  $zahl = $zahl +1;
}

Das hat mit einer Berechnung von Primzahlen nichts zu tun.

Alex

ich würde bis 100 das Sieb des Eratosthenes nehmen.

Was genau hast du denn mit deinem Code vor?

JEDE Zahl (außer 0) ergibt 1, wenn man sie durch sich selbst dividiert.

und JEDE Zahl ergibt sich selbst, wenn man sie durch 1 dividiert.

Also: wie hast du dir erwartet, dass dein Programm funktioniert?


SophieHxH 
Beitragsersteller
 05.05.2025, 14:02

Das ist ja das Problem, ich hab keine Ahnung...

Also momentan werden logischerweise alle Zahlen von 1 bis 99 ausgegeben, aber ich will ja nur die Primzahlen...

Und hab überhaupt keine Ahnung, wie das geht

EinAlexander  05.05.2025, 16:12
@SophieHxH
Und hab überhaupt keine Ahnung, wie das geht

Formulier mal - in Worten - was eine Primzahl ist. Dann können wir einen Algorithmus zur Erkennung von Primzahlen entwerfen.