Come calcolare Prime Fattori di un numero intero in Perl

August 10

Perl non ha una funzione predefinita che consente di ottenere i fattori primi di un numero intero, ma utilizzando la ricorsione e base 10 numeri, è possibile scrivere la propria funzione per realizzare il compito. Utilizzando la funzione "mappa" consente di eseguire in modo ricorsivo un blocco di codice in un elenco. Utilizzando il numero intero come la lista, è possibile estrarre ripetutamente 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.

istruzione

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

fattore sub {

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

$ Num = @_ [$ i];

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

Mappa stampa {sprintf ( "% s", di lunghezza), ""} getNext (1x $ num);

stampare "\ n";

}

}

Questo crea una semplice funzione denominata "fattore" che prende qualsiasi numero di parametri e stampa i fattori primi, separati da uno spazio. Si chiama la funzione "getNext" per calcolare in realtà i fattori primi.

2 Digitare il seguente codice:

sub getNext {

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

ritorno @_;

} altro {

tornare mappa getNext

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

}

}

Questo crea la funzione "getNext", che controlla se un intero è un numero primo. Se è così, restituisce il numero alla funzione "fattore" da stampare. In caso contrario, si chiama in modo ricorsivo 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 fattori primi. La prima linea ha un solo parametro, in modo che mostra solo una riga. Esso stampa 3, 3 e 5 come fattori primi. La riga successiva ottiene i fattori primi due numeri. Per 3.300, stampa 2, 2, 3, 5, 5 e 11, e 24, stampa 2, 2, 2 e 3.

4 Salvare il programma Perl.