Perl Bereken beschikt niet over een vooraf gedefinieerde functie, waarmee u de priemfactoren van een geheel getal , maar met behulp van recursie en base - 10 nummers , kunt u uw eigen functie te schrijven om de taak te bereiken . Met de functie " kaart " kunt u recursief uitvoeren van een blok code op een lijst . Door het gebruik van de integer als de lijst , kunt u herhaaldelijk extraheren priemfactoren van het aan hen allemaal te krijgen , gebruik dan de functie " sprintf " om ze te tonen op het scherm gescheiden door een spatie om ze beter leesbaar te maken . Instructies 1 Open een Perl-programma bestand . Typ de volgende code : sub factor { for ($ i = 0 ; $ i < @ _ ; $ i + + ) { $ num = @ _ [ ,"$ i ] ; afdruk " De priemfactoren van @ _ [ $ i ] zijn : " ; druk plattegrond { sprintf ( " % s " , lengte ) , " " } getnext ( 1x $ num ) ; print " \\ n " ; } } Dit zorgt voor een eenvoudige functie genaamd ' factor ' , dat een willekeurig aantal neemt van parameters en prenten uit de priemfactoren , elk gescheiden door een spatie . Het roept de functie " getnext " om daadwerkelijk berekenen van de priemfactoren Typ de volgende code 2 : . Sub getnext { if ( $ _ [ 0 ? ] ~ /^ ( ? .. + ) \\ 1 + $ /) { return @ _ ; } else { return kaart getnext ( $ _ ) , ( "$ 1 " , $ _ [ 0 ] = ~ s /$ 1/1/g , $ _ [ 0 ] ) [ 0 , -1 ] ; } } < br > Dit creëert de functie " getnext " , die controleert of een geheel getal is een priemgetal . Zo ja, het getal geeft de functie " factor " te drukken . Zo niet, dan recursief noemt zichzelf naar de volgende laagste prime vinden Type 3 de volgende code : factor ( 45 ) ; factor . ( 3300,24 ) ; Deze twee lijnen test de functie om priemfactoren te krijgen. De eerste lijn heeft slechts een parameter , zodat het toont slechts een regel . Het drukt 3 , 3 en 5 als priemfactoren . De volgende regel krijgt de priemfactoren voor twee nummers . Voor 3300 , het afdrukken 2 , 2 , 3 , 5 , 5 en 11 , en voor 24 , het afdrukken 2 , 2 , 2 en 3 . 4 Sla het Perl-programma . < br >
|