PHP :: Aufgabe #46 :: Lösung #1
2 Lösungen

#46
Alle Primzahlen bis zu einem Maximalwert ermitteln
Anfänger - PHP
von devnull
- 26.02.2014 um 18:36 Uhr
Es soll ein Programm geschrieben werden, welches alle Primzahlen im Bereich von 2 bis zu einem Maximalwert sucht und auf der Konsole ausgibt.
Den Maximalwert soll der Benutzer beim Programmaufruf auf der Kommandozeile angeben können.
Der Algorithmus zur Primzahlensuche ist frei wählbar.
Den Maximalwert soll der Benutzer beim Programmaufruf auf der Kommandozeile angeben können.
Der Algorithmus zur Primzahlensuche ist frei wählbar.
#1

von bibir (1870 Punkte)
- 03.09.2014 um 10:54 Uhr

<?php if(isset($_POST['max'])){ $max = $_POST['max']; } else { $max = 0; } $ergebnis = array(); if($max >= 2){ $ergebnis[] = 2; // zahlen-array aufbauen; es sind nur noch ungerade werte zu ueberpruefen $kandidaten = array(); for($i = 3; $i <= $max; $i += 2){ $kandidaten[] = $i; } // auf einzelne zahlen testen for($i = 0; $i <= ($max-3)/2; $i++){ if($kandidaten[$i] != 'X'){ $ergebnis[] = $kandidaten[$i]; $temp = $kandidaten[$i]; // alle vielfache von $i ausradieren for($j = $i; $j <= ($max-3)/2; $j+=$temp){ $kandidaten[$j] = 'X'; } } } } function print_ergebnis($ergebnis){ $erg = ''; foreach($ergebnis as $key=>$val){ $erg .= '<br />'.$val; } return $erg; } ?> <!DOCTYPE html> <html> <head> <title>Primzahlen</title> </head> <body> <form action="./primzahlen.php" name="prim" method="POST"> <table> <tr> <td>Maximalwert: </td> <td><input type="text" name="max" size="2" value="<?php echo $max ?>"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="berechnen" /></td> </tr> </table> </form> <p> Primzahlen: <?php echo print_ergebnis($ergebnis); ?> </p> </body> </html>
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1