Din pacate a trecut mai mult de o zi, insa revin cu restantele.
Ciurul lui Eratostene:function eratostene($number) { //construieste lista cu toate numerele for ($i=1;$i<$number;$i++) { $erat[$i]=1; } //elimina din lista multiplii fiecarui numar for ($i=2;$i<$number;$i++) { if ($erat[$i]) { for ($j=2;$j*$i<$number;$j++) { $erat[$i*$j]=0; } } } return $erat; }
Algoritmul lui Atkin:
function atkin($number) { //se construieste lista de numere, initializata cu valoarea 0 for ($i=1;$i<$number;$i++) { $atkin[$i]=0; } //se adauga in lista diverse numere prime for ($i=1;$i<sqrt($number);$i++) { for ($j=1;$j<sqrt($number);$j++) { $x=4*$i*$i+$j*$j; if ($x<$number && ($x%12==1 || $x%12==5)) { $atkin[$x]=1; } $x=3*$i*$i+$j*$j; if ($x<$number && $x%12==7) { $atkin[$x]=1; } $x=3*$i*$i-$j*$j; if ($i>$j && $x<$number && $x%12==11) { $atkin[$x]=1; } } } //se elimina din lista patratele perfecte for ($i=5;$i<sqrt($number);$i++) { $x=$i*$i; $j=1; while ($j*$x<$number) { $atkin[$j*$x]=0; $j++; } } $atkin[2]=1; $atkin[3]=1; return $atkin; }Desi din literatura de specialitate (chiar si din citirea la prima vedere a algoritmilor) am inteles ca Atkin ar fi mai rapid, mie mi-a iesit exact invers. Dar probabil numerele nu au fost suficient de mari.