Ciao a tutti,
ho cominciato a studiare il Php da pochi giorni, non avendo nessuna esperienza di programmazione, quindi scusatemi se i miei problemi vi sembreranno banali. Non riesco ad implementare il Crivello di Eratostene. Ho creato un vettore contenente i primi n numeri, con n che è preso in input da un form. Poi ho creato un ciclo for che dovrebbe eliminare dal vettore tutti i multipli dei numeri compresi tra 2 e n/2 in modo da far sì che nel vettore rimangano solo i numeri primi. Perché non funziona?
<?php
$n = $_POST["eratostene"];
if(is_numeric($n))
{
for ($p=1; $p<=$n; $p++)
{$primes[]=$p;}
for ($i=2; $i<=$n/2; $i++)
{
function mult($var)
{return($var % $i != 0);}
array_filter($primes,"mult");
}
$cnt=count($primes);
for ($j=0; $j<=$cnt; $j++)
{echo $primes[$j]." ";}
}
else
{echo "Error: please insert a positive integer!";}
?>