Pagina dedicata alla codifica in Php della scomposizione in fattori primi di un numero intero.
Risorse collegate
Per una spiegazione dettagliata della codifica in Php, vi rimando a
Analisi fatta in un altro articolo (che deve essere letto perché è propedeutico al contenuto di questo articolo)
la funzione sqrt per estrarre la radice quadrata di un numero N
la funzione microtime con il parametro True che mi restituisce un numero float che misura il numero di secondi passati dall'epoca di Linux; questo numero ha anche una parte decimale con una precisione fino a 13 cifre; questa parte frazionaria, moltiplicata per un milione, mi darà il numero di microsecondi trascorsi dall'inizio alla fine dello script. Infatti, se faccio la differenza fra il tempo misurato alla fine e il tempo misurato all'inizio dello Script, avrò misurato quanto tempo lo script impiega per l'esecuzione.
la funzione modulo per il calcolo del resto fra N e k
il tag html <H1>
il tag html <sup>
ma apporteremo una leggera modifica che consentirà di migliorare ulteriormente l'efficienza dell'algoritmo.
La modifica scaturisce dall'osservazione che, tranne il due, tutti i fattori primi di una scomposizione sono dispari.
Dunque, richiamando la funzione conta_esponente, si prova a dividere per due. La funzione conta_esponente restituisce un numero intero che indica quante volte il numero due appare nella scomposizione di N. Se il numero restituito dalla funzione è diverso da 0, allora si visualizza 2 elevato al numero
$kexp=conta_esponente($N,2);
if($kexp!=0){
echo "2<sup>$kexp<sup> ";
}
Poi usiamo un ciclo che prenda in considerazione solo i numeri dispari, facendo partire da 3 la variabile $k che controllerà il ciclo e aumentandola di 2 ad ogni giro. All'interno del ciclo, sarà richiamata la funzione conta_esponente($N, $k).
$k=3;
while($k<=sqrt($N)){
$kexp=conta_esponente($N,$k);
if($kexp!=0){
echo "$k<sup>$kexp<sup> ";
}
$k+=2;
}