Nwlapcug.com


Come calcolare i fattori primi di un numero intero in Perl

Perl non dispone di una funzione predefinita che consente di ottenere i fattori primi di un numero intero, ma utilizzando la ricorsione e numeri in base 10, è possibile scrivere una funzione personalizzata per realizzare il compito. Utilizzando la funzione "mappa" consente in modo ricorsivo si eseguire un blocco di codice in un elenco. Utilizzando il valore integer come l'elenco, è possibile ripetutamente estrarre fattori primi da esso per farli tutti, quindi utilizzare la funzione "sprintf" per visualizzarli sullo schermo separato da uno spazio per renderli più facili da leggere.

Istruzioni

1

Aprire un file di programma Perl. Digitare il seguente codice:

Sub {fattore

per ($i = 0; $i < @_; $i + +) {

$num = @_ [$i];

Stampare "sono i fattori primi di @_ [$i]:";

Stampa mappa {sprintf ("%s", lunghezza), ""} getNext (1 x$ num);

Stampare "\n";

}

}

Questo crea una funzione semplice, chiamata "fattore" che accetta qualsiasi numero di parametri e vengono stampati i fattori primi, ciascuno separato da uno spazio. Chiama la funzione di "getNext" per calcolare effettivamente i fattori primi.

2

Digitare il seguente codice:

Sub getNext {

if ($_[0] !~ /^(.. +?) \1+$/) {

return @_;

} else {

ritorno mappa getNext($), ("$1", $[0] = ~ s / $1/1/g, $_ [0]) [0, -1];

}

}

Questo crea la funzione di "getNext", che consente di verificare se un numero intero è un numero primo. In questo caso, restituisce il numero della funzione di "fattore" da stampare. Se non, si chiama in modo ricorsivo se stessa per trovare il prossimo primo più basso.

3

Digitare il seguente codice:

Factor(45);

Factor(3300,24);

Queste due linee di prova la funzione per ottenere i fattori primi. La prima linea ha solo un parametro, quindi Mostra solo una riga. Stampa 3, 3 e 5 come fattori primi. La riga successiva ottiene i fattori primi per due numeri. Per 3.300, stampa 2, 2, 3, 5, 5 e 11, e per 24, stampa 2, 2, 2 e 3.

4

Salvare il programma Perl.