Perl no tiene una función predefinida que le permite obtener los factores primos de un entero, pero el uso de la recursividad y la base - 10 números, puede escribir su propia función para lograr la tarea. Con la función " mapa " le permite realizar de forma recursiva un bloque de código en una lista . Al utilizar el número entero como la lista , puede extraer repetidamente factores primos de ella para llegar a todos ellos , a continuación, utilice la función " sprintf " para mostrar en la pantalla separadas por un espacio para que sean más fáciles de leer . Instrucciones
1
Abra un archivo de programa Perl. Escriba el siguiente código:
sub factor de
{ for ($ i = 0 ; $ i <@ _ ; $ i + + ) {
$ num = @ _ [ ,"$ i ] ;
print " Los factores primos de @ _ [ $ i ] son :";
estampado plano { sprintf ("% s ", longitud ) : " "} getNext ( 1x $ num) ;
print "\\ n"; }
}
Esto crea una función simple llamado "factor" que toma cualquier número de parámetros e imprime los factores primos , cada uno separado por un espacio. Se llama a la función " getNext " para calcular realmente los factores primos
2
Escriba el siguiente código: .
Sub getNext
{ if ($ _ [ 0 !] ~ /^ ( ? .. +) \\ 1 + $ /) {
regreso @ _ ;
} else {
regreso mapa getNext ($ _) , ( "$ 1 ", $ _ [ 0 ] = ~ s /$ 1/1/g , $ _ [ 0 ] ) [ 0 , -1 ] ;
} } < br >
Esto crea la función " getNext ", que comprueba si un número entero es un número primo . Si es así , devuelve el número de la función "factor" que desea imprimir. Si no, se llama a sí misma recursivamente para encontrar el próximo primer bajo
3
Escriba el siguiente código:
factor de
( 45 ) ;
factor de
. ( 3300,24 ) ;
Estas dos líneas de probar la función para obtener factores primos. La primera línea sólo tiene un parámetro, por lo que sólo muestra una línea. Se imprime 3 , 3 y 5 como factores primos. La línea siguiente obtiene los factores primos de dos números. Para 3300 , se imprime 2 , 2 , 3 , 5 , 5 y 11, y de 24 , imprime 2 , 2 , 2 y 3 .
4
Guardar el programa Perl.