Primzahlen in php ausgeben?
Ich möchte gerne alle Primzahlen von 1 bis 100 mit php ausgeben, bzw das programmieren.
Dafür möchte ich gerne while Schleifen verwenden.
Kann jemand sagen, was ich vergessen habe?
Dankiiii (Aufgabe 6)
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?
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.
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