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