Perl har ikke en foruddefineret funktion , der lader dig få de primfaktorer et heltal, men ved hjælp af rekursion og base -10- numre, kan du skrive din egen funktion til at nå opgaven . Brug af " map" funktion kan du rekursivt udføre en blok af kode på en liste. Ved at bruge heltal som listen , kan du gentagne gange udtrække primfaktorer fra det for at få dem alle , og brug derefter " sprintf " funktion til at vise dem på skærmen adskilt af et mellemrum for at gøre dem lettere at læse. Instruktioner
1
Åbn en Perl program fil. Indtast følgende kode : Hej
sub faktor {
for ($ i = 0; $ i < @ _ , $ i + +) {
$ num = @ _ [ ,"$ i] ;
print " De primfaktorer @ _ [ $ i] , er: "
print map { sprintf ( "% s" , længde) , "" } GetNext ( 1x $ num ),
print " \\ n";
}
}
Dette skaber en simpel funktion kaldet " faktor" , der tager et vilkårligt antal parametre og udskriver de vigtigste faktorer , adskilt hver af et mellemrum. Det kalder " GetNext "-funktionen til rent faktisk at beregne de vigtigste faktorer
2
Indtast følgende kode : .
Sub GetNext {
if ($ _ [ 0 !] ~ /^ ( ? .. +) \\ 1 + $ /) {
tilbagevenden @ _ ;
} else {
retur kort GetNext ( $ _) , ( "$ 1" , $ _ [ 0] = ~ s /$ 1/1/g , $ _ [ 0] ) [0 , -1 ]
}
} < br >
Dette skaber " GetNext " funktion, som kontrollerer, om et heltal er et primtal . Hvis det er tilfældet , returnerer det nummer til " faktor" funktion, der skal udskrives. Hvis ikke, er det rekursivt kalder sig selv for at finde den næste laveste prime
3
Indtast følgende kode : Hej
faktor (45 ),
faktor. ( 3300,24 ),
Disse to linjer teste funktionen for at få primfaktorer . Den første linje har kun én parameter , så det viser kun én linje. Det udskriver 3, 3 og 5, som primære faktorer. Den næste linje får de vigtigste faktorer for to numre. For 3.300 , udskriver det 2, 2, 3, 5, 5 og 11, og for 24 udskriver det 2, 2, 2 og 3 .
4
Gem Perl program.
< br >