Perl inte har en fördefinierad funktion som låter dig få de främsta faktorerna för ett heltal , men använda rekursion och bas - 10 nummer , kan du skriva en egen funktion för att uppnå uppgiften . Använda " map " -funktionen låter dig rekursivt utföra ett kodblock på en lista . Genom att använda heltal som listan , kan du ofta hämta primtalsfaktorer från det att få dem alla , använd sedan " sprintf " -funktion för att visa dem på skärmen med ett mellanslag för att göra dem lättare att läsa . Instruktioner
1
Öppna ett Perl programfil . Skriv följande kod :
sub faktor {
för ( $ i = 0 ; $ i < @ _ ; $ i + + ) {
$ num = @ _ [ ,"$ i] ;
print " De främsta faktorerna @ _ [ $ i] är : " ;
Skriv ut karta { sprintf ( " % s " , längd ) , " " } GetNext ( 1x $ num ) ,
print " \\ n ";
}
}
Detta skapar en enkel funktion som kallas " faktor " som tar ett antal av parametrar och skriver ut de främsta faktorerna , separerade av ett mellanslag . Det kallar " GetNext " funktionen att faktiskt beräkna primtalsfaktorerna
2
Skriv följande kod : .
Sub GetNext {
if ( $ _ [ 0 ! ] ~ /^ ( ? .. + ) \\ 1 + $ /) {
återvända @ _ ;
} else {
retur karta GetNext ( $ _ ) , ( " $ 1" , $ _ [ 0 ] = ~ s /$ 1/1/g , $ _ [ 0 ] ) [ 0 , -1 ] ;
}
}
Detta skapar " GetNext " -funktion , som kontrollerar om ett heltal är ett primtal . Om så är fallet , återgår numret till " faktorn " -funktion som ska skrivas ut . Om inte , kallar det rekursivt sig att hitta nästa lägsta prime
3
Skriv följande kod :
faktor ( 45 ) ,
faktor . ( 3300,24 ) ,
Dessa två rader testa funktionen för att få primtalsfaktorer . Den första raden har bara en parameter , så det visar bara en linje . Den skriver ut 3 , 3 och 5 som primtalsfaktorerna . Nästa rad blir de främsta faktorerna för två tal . För 3300 , skriver den 2 , 2 , 3 , 5 , 5 och 11 , samt för 24 , skriver den 2 , 2 , 2 och 3 .
4
Spara Perl -programmet .
Addera