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.