Scomposizione di $n in fattori primi:
";
while($k<=sqrt($n)){ //tentiamo di dividere per 2,3,....fino a radice di n
$kexp=0; // azzeramento contatore esponente
$resto=$n%$k; // calcoliamo n modulo k (resto della divisione fra n e l)
while($resto==0){ //fintantochè è divisibile per lo stesso divisore
//echo"
k=$k n=$n radice quadrata=".sqrt($n)."
";
$kexp++; // aumentiamo d1 il contatore degli esponenti
$n=floor($n/$k); //effettuiamo la divisione (n diminuisce!!!)
$resto=$n%$k; // calcoliamo di nuovo il modulo e vediamo se è ancora divisibile per lo stesso numero
} //torna testare la condizione
// arrivati a questo punto del programma kexp contiene un numero indicante
// quante volte k ha diviso il valore iniziale
if($kexp!=0){ // se k ha diviso almeno una volta
echo "$k$kexp "; // mostriamo il divisore e il relativo esponente
}
//echo"
k=$k n=$n radice quadrata=".sqrt($n)."
";
$k++; // passiamo al prossimo candidato divisore
}
// stampa delle statistiche
if($n!=1){
echo" $n";
}
$time+=microtime(True);
$time*=1000*1000;
echo "
tempo di esecuzione in microsecondi: $time ULTIMO DIVISORE: ".($k-1);
?>