Ein wunderschönes Ausgabelayout habe ich nicht, aber es klappt ganz gut wenn man denn genung RAM hat, wenn nicht muss man alles in MYSQL Tabellen anstatt von Array speichern. Hier das ganz in PHP:
PHP-Code:
<?php
/*Das Sieb des Aristotoes:
"Man muss nicht rechnen können um Primzahlen zufinden nur zählen." Normaler Weiser schreibt man alle Zahlen auf ein Blatt und fängt bei 2 an: 2
wir nicht durchgestrichen, zwei weiter (4) wird durch gestrichen usw. dann mit 3.*/
$zahlen = array(0);//Beginn der Berechnung
for ($i=1;$i<10000;$i++){
$zahlen[$i] =1;
}
for($j=2;2*$j<10000;$j++){//"siebt" alle Zahlen bis zu Hälfte
if ($zahlen[$j] == 1){//nur Vielfach von Primzahlen werden druchgestrichen wenn
for($k=$j;$k<10000;){ //ich alle Vielfach von 2 habe brauche ich die von 4 nicht.
$k=$k+$j;
$zahlen[$k] = 0;//Vielfach sind keine Primzahlen
}
}
} //Ende der Berechnung
//Beginn der Ausgabe
$primzahl = array(0);
for($l=1;$l<10000;$l++){
if($zahlen[$l]==1){
echo $l."<br>";
$primzahlen[]= $l;//Menge aller Primzahlen
}
}
//Jetzt die Primzahlpaarerweiterung:
echo "Primzahlpaare sind:<br>";
for($m=1;$m<count($primzahlen);$m++){
if ($primzahlen[$m+1]-$primzahlen[$m] == 2){
$mpluseins = $m +1;
echo "$primzahlen[$m] | $primzahlen[$mpluseins] <br>";//mit [$m+1] hat leider nicht geklappt
}
}
?>