Perl ikke har en forhåndsdefinert funksjon som lar deg få de viktigste faktorene for et heltall , men ved hjelp av rekursjon og basen - 10 tall, kan du skrive din egen funksjon for å få oppgaven . Bruke "kart "-funksjonen lar deg rekursivt utføre en blokk med kode på en liste . Ved hjelp av heltall som listen , kan du gjentatte ganger trekke primfaktorene fra det å få dem alle , deretter bruke " sprintf "-funksjonen til å vise dem på skjermen atskilt med et mellomrom for å gjøre dem lettere å lese. Instruksjoner
en
Åpne et Perl program fil . Skriv inn følgende kode :
sub faktor {
for ($ i = 0 ; $ i < @ _ ; $ i + + ) {
$ num = @ _ [ ,"$ i] ;
print " De viktigste faktorene for @ _ [$ i] er: ";
print map { sprintf ( "% s ", lengde ), "" } GetNext ( 1x $ num ) ;
print " \\ n";
}
}
Dette skaper en enkel funksjon som heter " factor" som tar et tall parametere og skriver ut de viktigste faktorene , atskilt av et mellomrom. Det kaller " GetNext "-funksjonen til å faktisk beregne de viktigste faktorene
2
Skriv inn følgende kode : .
Sub GetNext {
if ( $ _ [ 0 ! ] ~ /^ ( ? .. + ) \\ 1 + $ /) {
retur @ _ ;
} else {
retur map GetNext ( $ _ ) , ( " $ 1 ", $ _ [ 0 ] = ~ s /$ 1/1/g , $ _ [ 0 ] ) [ 0 , -1 ];
}
}
p Dette skaper den " GetNext "-funksjonen , som sjekker om et heltall er et primtall . Hvis så , går det nummeret til " factor" -funksjon som skal skrives ut . Hvis ikke , kaller det rekursivt seg til å finne den nest laveste prime
3
Skriv inn følgende kode :
faktor ( 45) ;
faktor . ( 3300,24 ) ;
Disse to linjene teste funksjonen for å få primfaktorer . Den første linje kun har en parameter, slik at det bare viser én linje . Den skriver ut 3 , 3 og 5 som primfaktorer . Den neste linjen blir de viktigste faktorene for to tall. For 3300 , skriver den 2, 2, 3, 5 , 5 og 11, og for 24, skriver den 2, 2, 2 og 3 .
4
Lagre Perl program .