Perl ne possède pas de fonction prédéfinie qui vous permet d'obtenir les facteurs premiers d' un nombre entier , mais en utilisant la récursivité et en base 10 numéros, vous pouvez écrire votre propre fonction pour réaliser la tâche . En utilisant la fonction " carte " vous permet d'effectuer de manière récursive un bloc de code sur une liste. En utilisant l'entier de la liste, vous pouvez extraire plusieurs facteurs premiers de celle-ci pour les avoir toutes , puis utilisez la fonction " sprintf " pour les afficher sur l'écran séparés par un espace pour les rendre plus faciles à lire . Instructions 1 ouvrir un fichier de programme Perl. Tapez le code suivant : sous-facteur { for ($ i = 0; $ i < @ _; $ i + +) { $ num = @ _ [ ,"$ i] ; print " Les facteurs premiers de @ _ [$ i ] sont :"; carte d'impression { sprintf ( "% s" , longueur) , ""} getNext ( 1x $ num ) ; print "\\ n"; } } Cela crée une fonction simple appelée «facteur» qui prend un nombre des paramètres et imprime les facteurs premiers , séparés par un espace. Il appelle la fonction " getNext " pour calculer réellement les facteurs premiers 2 Tapez le code suivant : . Sous getNext { if ($ _ [0 !] ~ /^ ( ? .. +) \\ 1 + $ /) { retour @ _; } else { retour carte getNext ($ _ ) , ( "$ 1" , $ _ [ 0] = ~ s /1/1/g $ , $ _ [ 0]) [0 , -1] ; } } < br > Cela crée la fonction " getNext " , qui vérifie si un nombre entier est un nombre premier . Si c'est le cas , elle renvoie le nombre de la fonction " facteur " à imprimer. Sinon, il appelle lui-même de manière récursive pour trouver le prochain Premier bas 3 Type de le code suivant : facteur de (45); facteur de . ( 3300,24 ) ; Ces deux lignes de tester la fonction pour obtenir facteurs premiers. La première ligne a un seul paramètre , il montre seulement une seule ligne. Elle imprime sur 3 , 3 et 5 comme facteurs premiers. La ligne suivante obtient les facteurs premiers de deux nombres. Pour 3300 , il affiche 2, 2, 3 , 5, 5 et 11 , et 24 , il affiche 2, 2, 2 et 3. 4 Enregistrer le programme Perl.
|