Perl non dispone di una funzione predefinita che consente di ottenere i fattori primi di un numero intero , ma utilizzando la ricorsione e la base - 10 numeri , si può scrivere la propria funzione per realizzare il compito . Con la funzione " mappa " consente di eseguire in modo ricorsivo un blocco di codice in un elenco . Usando il numero intero come l' elenco, è possibile estrarre ripetutamente fattori primi da esso per farli tutti , quindi utilizzare la funzione " sprintf " per visualizzarli sullo schermo separati da uno spazio per renderli più facili da leggere . Istruzioni
1
Aprire un file di programma Perl . Digitare il seguente codice :
sub fattore {
for ( $ i = 0; $ i < @ _ ; $ i + + ) {
$ num = @ _ [ ,"$ i ] ;
stampa " I fattori primi di @ _ [ $ i ] sono : " ;
cartina stampa { sprintf ( "% s" , lunghezza ) , ""} getNext ( 1x $ num) ;
print " \\ n"; }
}
Questo crea una semplice funzione chiamata " fattore " che prende qualsiasi numero di parametri e stampa i fattori primi , separati da uno spazio. Si chiama la funzione " getNext " per calcolare effettivamente i fattori primi
2
digitare il seguente codice : .
Sub getNext {
if ( $ _ [ 0 ! ] ~ /^ ( ? .. + ) \\ 1 + $ /) {
ritorno @ _ ;
} else {
ritorno mappa getNext ( $ _ ) , ( "$ 1" , $ _ [ 0 ] = ~ s /$ 1/1/g , $ _ [ 0 ] ) [ 0 , -1 ] ;
}
} < br >
Questo crea la funzione " getNext " , che verifica se un numero intero è un numero primo . In caso affermativo , restituisce il numero alla funzione "fattore " di essere stampati . In caso contrario , si richiama sé stesso ricorsivamente per trovare il prossimo primo basso
3
Digitare il seguente codice:
fattore
( 45) ;
fattore
. ( 3300,24 ) ;
Queste due linee di testare la funzione per ottenere fattori primi . La prima linea ha un solo parametro , quindi mostra solo una riga . Esso stampa 3 , 3 e 5 come fattori primi . La riga successiva ottiene i fattori principali per due numeri . Per il 3300 , stampa 2 , 2 , 3 , 5 , 5 e 11 , e per il 24 , stampa 2 , 2 , 2 e 3 .
4
Salvare il programma Perl .